【问题标题】:Pycharm not using nosetests config filePycharm不使用nosetests配置文件
【发布时间】:2018-05-15 20:32:46
【问题描述】:

PyCharm 不会从鼻子配置文件中加载任何设置,而 python 的解释器会这样做。如何启用 PyCharm 以使用配置文件?我也想了解为什么。

设置来自配置文件不仅仅是参数在我的 PyCharm 实例上非常重要。我提供的设置只有 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

【问题讨论】:

  • 我已经回顾了这一点。我仍然没有答案,但是当我保持相同的文件结构并在从同一文件夹中运行鼻子测试时添加“__ init __.py”时,我能够在直接的鼻子测试(PyCharm 之外)中复制相同的行为.从文件夹外部运行时,它可以正常工作,但在文件夹内,它的行为就像 PyCharm(忽略 cfg 文件)。我尝试从 PyCharm 做同样的事情,看看是否能解决问题,但没有。

标签: python pycharm nose nosetests


【解决方案1】:

我会尝试在 pycharm 中明确指定 --config=/home/YOUR_USERNAME/nose.cfg,作为“附加参数”。

【讨论】:

  • 感谢 Oleksiy 为某些人提供的解决方案。我忘了提到我需要来自配置文件的设置,而不仅仅是可以通过 PyCharm“参数”字段明确输入的参数(即:我不想阻止团队设置中的任何其他参数)希望放在自己的机器上)。我已经继续并更新了我上面的帖子以反映该标准。
  • 我试过了,但它不起作用。我认为应该,但事实并非如此。我必须输入完整的显式位置 '/Users/marcs/nose.cfg' 才能使用 PyCharm 的 param 字段。有没有我没有设置的设置?
  • 我认为让nose.cfg 成为~/PycharmProjects/Testing/ 项目的一部分是有意义的
  • 我认为你是对的。不幸的是,我已经搜索了如何做到这一点,但没有找到方法。如果您知道,请分享,如果有效,我会将其标记为正确答案:)
猜你喜欢
  • 2020-05-26
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 2015-10-26
  • 2016-06-07
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多