我遇到nosestests两次写入unittext 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测试运行覆盖。
干杯,
保罗
答案 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'