2013-11-29 87 views
0

我有兩次寫入到unittext xml文件的nosestests問題。Nosetest覆蓋xml輸出

我有這樣的Python腳本

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' 

的問題是,如果我運行它像這樣

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

我得到這個輸出

test_aa (test.aa) ... ok 

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

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

OK 

問題是這樣寫的nosetests.xml文件兩次。有沒有辦法讓這個測試運行一次?

我需要這個的原因是我有一個基本上第一次運行良好的單元測試,然後第二次失敗,xml文件被0測試運行覆蓋。

乾杯,
保羅

回答

2

您導入(與unittest.xx.run(allSuites)線),和第二次與鼻子在一次運行測試兩次,一旦發現test_aa()測試。如果你打算使用鼻子,你不必在腳本中運行測試 - 鼻子將作爲你的測試運行者。

您可以通過一次與運行測試平原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'