2013-11-29 3 views
0

nosestests가 unittext xml 파일에 두 번 쓰는 데 문제가 있습니다.Nosetest가 xml 출력을 덮어 씁니다.

나는이 파이썬 스크립트를 가지고

import unittest 

class aa(unittest.TestCase): 
    def test_aa(self): 
     self.assertTrue(True) 


testlist = [] 

suite = unittest.TestLoader().loadTestsFromTestCase(aa) 
testlist.append(suite) 

allSuites = unittest.TestSuite(testlist) 
unittest.TextTestRunner(verbosity=3).run(allSuites) 

print 'done' 

나는 문제가

test_aa (test.aa) ... ok 

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

OK 
done 
. 
---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 

이가에 기록이 출력을 얻을이

nosetests --with-xunit -s --verbosity=2 test.py 

처럼 실행하면 문제는 nosetests.xml 파일을 두 번. 이 테스트를 한 번만 실행할 수있는 방법이 있습니까?

내가 필요로하는 이유는 기본적으로 처음에는 정상적으로 실행되는 단위 테스트가 있고 두 번째에는 실패하고 xml 파일은 0 테스트를 실행하여 덮어 쓰게됩니다. 이 test_aa() 테스트를 발견하면

건배,

답변

2

은 한 번 코를 가진 수입 (unittest.xx.run(allSuites)과 일치), 그리고 두 번째 시간 동안 두 번 테스트를 실행하고 있습니다. 코를 사용하려는 경우 스크립트에서 테스트를 실행할 필요가 없습니다. 코가 테스트 러너 역할을합니다.

질문에 명시된대로 당신은 (코를 사용하지 않는) python your_test.py 일반, 또는 같은 것으로 테스트를 다시 작성하고 명령을 사용하여 함께 테스트를 실행하여 한 번에 실행할 수 있습니다

:

import unittest 

class aa(unittest.TestCase): 
    def test_aa(self): 
     self.assertTrue(True) 

if __name__ == '__main__': 
    # this will not run on import, only when tests are running with unittest with python 
    testlist = [] 

    suite = unittest.TestLoader().loadTestsFromTestCase(aa) 
    testlist.append(suite) 

    allSuites = unittest.TestSuite(testlist) 
    unittest.TextTestRunner(verbosity=3).run(allSuites) 

    print 'done' 
관련 문제