【问题标题】:ValueError using nosetest subprocessValueError 使用鼻子测试子流程
【发布时间】:2014-02-03 03:25:40
【问题描述】:

我希望得到与执行 os.system 时相同的输出:

os.system('nosetests TestStateMachine.py:FluidityTest.test_it_has_an_initial_state -v')
test_it_has_an_initial_state (TestStateMachine.FluidityTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.001s

OK
Out[5]: 0

但是当我执行时:

x = subprocess.Popen(["nosetests",
"TestStateMachine.py:FluidityTest.test_it_has_an_initial_state -v"],
stdout=subprocess.PIPE)

我明白了:

E
======================================================================
ERROR: Failure: ValueError (No such test FluidityTest.test_it_has_an_initial_state -v)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/nose/failure.py", line 41, in runTest
raise self.exc_class(self.exc_val)
ValueError: No such test FluidityTest.test_it_has_an_initial_state -v

----------------------------------------------------------------------
Ran 1 test in 0.034s

FAILED (errors=1)

【问题讨论】:

    标签: python subprocess popen nosetests os.system


    【解决方案1】:

    您使用了错误的命令行。这是正确的:

    x = subprocess.Popen(["nosetests",
        "TestStateMachine.py:FluidityTest.test_it_has_an_initial_state",
        "-v"],
        stdout=subprocess.PIPE)
    

    您传递给Popen 的列表已经代表了已解析 命令行。通过将测试名称和-v 放在同一个字符串中,就像引用它们一样:

    $nosetests "TestStateMachine.py:FluidityTest.test_it_has_an_initial_state -v"
    

    在命令行中,-v 以测试名称结尾(仔细阅读您遇到的错误...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      相关资源
      最近更新 更多