1

我之前问过这个问题(Forcenose2 使用 Python 2.7 而不是 Python 3.5)但没有得到答案,我想我可以再试一次。我正在尝试使用命令运行测试

nose2

但我收到一个以

SyntaxError: Missing parentheses in call to 'print'

似乎nose2假设代码在Python 3 中,而在这种情况下它在Python 2 中。有没有办法nose2在Python 2 代码上工作?(例如通过更改其配置)?

4

1 回答 1

3

nose2 采用 shebang 行中配置的任何 python。

要测试 python2 项目的使用(可执行文件和路径可能在您的机器上有所不同):

python2.7 /usr/local/bin/nose2

用这个例子验证:

测试.py

def test_the_program():
    print "foo"

与 python3

$ python3 /usr/local/bin/nose2
======================================================================
ERROR: test (nose2.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: test
    (...)
    print "hans"
               ^
SyntaxError: Missing parentheses in call to 'print'


----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)

使用 python2.7

$ python2.7 /usr/local/bin/nose2
foo
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
于 2017-01-11T12:14:46.227 回答