2014-03-06 35 views
4

PyCharm不会从Python配置文件中加载任何设置,而python的解释器却可以。我怎样才能让PyCharm使用配置文件?我也想明白为什么。Pycharm不使用nosetests配置文件

这是非常重要的是,从设置不仅对我的PyCharm的实例PARAMS配置文件和。我提供的设置只有3个文件,但我最终会使用这个答案共同测试设置。

这里的设置:

~/PycharmProjects/Testing/test_suite.py 
~/PycharmProjects/Testing/unnecessary_math.py 
~/nose.cfg 

通过解释在运行时(PyCharm外)的 “nose.cfg” 设置被认可就跑,并提供:

Marcs-MacBook-Pro:Testing marcs$ nosetests -s . 
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$'] 
Doctest: unnecessary_math.divide ... ok 
Doctest: unnecessary_math.multiply ... ok 
Starting Test 
['/Users/marcs/nose.cfg'] 
test_suite.test_numbers_0_4 ... ok 
test_suite.test_num_4_4_4_4 ... ok 
Ending Test 

---------------------------------------------------------------------- 
XML: nosetests.xml 
---------------------------------------------------------------------- 
Ran 4 tests in 0.008s 

OK 
Marcs-MacBook-Pro:Testing marcs$ 

当从PyCharm运行我得到这个输出

/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python /Applications/PyCharm.app/helpers/pydev/pydevd.py --multiproc --client 127.0.0.1 --port 61446 --file /Applications/PyCharm.app/helpers/pycharm/noserunner.py /Users/marcs/PycharmProjects/Testing/ -s 
Testing started at 5:36 AM ... 
pydev debugger: process 10464 is connecting 

Connected to pydev debugger (build 133.881) 




Starting Test 
['/Users/marcs/nose.cfg'] 
.. 

.. 
Ending Test 

---------------------------------------------------------------------- 
Ran 2 tests in 0.023s 

OK 


Process finished with exit code 0 

所以从我能看到它看起来似乎PyCharm的环境认识到nose.cfg文件,但由于某种原因选择不加载它。我不知道为什么。

我已经包含的文件将下面的代码:

〜/ nose.cfg

[nosetests] 
verbosity=3 
with-doctest=1 
with-xunit=1 

test_suite.py

from unnecessary_math import multiply 
from nose.tools import assert_equals 
import nose.config as config 

def setup_module(): 
    print "Starting Test" 
    print config.all_config_files() 

def teardown_module(): 
    print "Ending Test" 

def test_numbers_0_4(): 
    assert_equals(multiply(0,4), 0) 

def test_num_4_4_4_4(): 
    assert_equals(multiply(4,4,4,4), 256) 

unnecessary_math.py

def multiply(*args): 
    """ 
     This function multiplies any number of integers together 
     'Given a list of numbers it will give you their commutative product' 
     >>> multiply(4,4) 
     16 
     >>> multiply(4,4,4,4) 
     256 
     >>> 
    """ 
    product = 1 
    for arg in args: 
     product = product * arg 
    return product 

def divide(a,b): 
    """ 
     This function divides a by b 
     'b divides a' 
     >>> divide(4,4) 
     1 
     >>> divide(8,2) 
     4 
     >>> 
     >>> divide(5,2) 
     2 
     >>> 
    """ 
    return a/b 
+0

我已经回顾了这一点。我仍然没有答案,但是当我保持相同的文件结构并在同一文件夹内运行nosetests时添加“__ init __.py”时,我可以在笔直的nosetests(PyCharm之外)中复制相同的行为。当从文件夹外部运行时,它正常工作,但在文件夹内,它的行为就像PyCharm(忽略cfg文件)。我试图从PyCharm那里得到同样的结果,看看是否解决了这个问题,而不是。 – Marc

回答

2

我会尝试在pycharm中明确指定--config=~/nose.cfg

+0

感谢Oleksiy为什么可能是一些解决方案。我忘了提及我需要设置来自配置文件,而不仅仅是通过PyCharm“params”字段可以明确的参数(即:我不想在团队设置中阻止任何额外的params人员希望放在他们自己的机器上)。我已经提前更新了我的帖子,以反映这一标准。 – Marc

+1

我试过了,它不起作用。我认为它应该,但它不。我必须将完整的显式位置'/Users/marcs/nose.cfg'放在PyCharm的param字段中。有没有设置我没有设置? – Marc

+0

我认为在'〜/ PycharmProjects/Testing /' – Oleksiy