2014-01-14 6 views
0

를 사용하여 나는 내가 os.system을 실행될 때 가지고 동일한 출력하고 싶은 :ValueError를 nosetest 서브 프로세스

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) 

답변

2

잘못된 명령 줄을 사용 중입니다. 여기에 올바른 : 당신은 Popen에 전달

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

목록은 이미 분석 명령 행을 나타냅니다. 테스트 이름과 같은입니다 같은 문자열의 -v을 놓음으로써 당신은 일을 같이 그들을 인용하는 경우 :

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

를 명령 줄에서와 -v 조심스럽게 (테스트의 이름으로 오류를 읽기 끝 너 ...)