计数和 return 鼻子测试次数
Count and return number of nosetests
我在pwd中保存了一组单元测试脚本。我希望能够计算将执行的单元测试 (nosetests
) 的数量(而不实际执行它们)并将该数字 return 放入 python 变量中,如下所示:
>>> number_of_unit_tests = count_unit_tests('.')
>>> number_of_unit_tests
400
我知道我可以像这样从命令行收集:
nosetests --collect-only
但是是否可以从脚本中执行此操作?
您可以 运行 任何鼻子命令形式 python 脚本,如 basic nose usage, the only trick would be to extract the number of tests. I took a look at functional tests in nose 中所述,并且认为这样的事情应该有效,但您也许可以 trim 再往下看:
import sys
import unittest
from cStringIO import StringIO
import nose
from nose.result import _TextTestResult
class TestRunner(unittest.TextTestRunner):
def _makeResult(self):
self.result = _TextTestResult(
self.stream, self.descriptions, self.verbosity)
return self.result
def count_unit_tests(module_name):
stream = StringIO()
runner = TestRunner(stream=stream)
result = nose.run(
testRunner=runner,
argv=[sys.argv[0],
module_name,
'-s',
'-v',
'--collect-only'
]
)
return runner.result.testsRun
if __name__ == '__main__':
print count_unit_tests('.')
我在pwd中保存了一组单元测试脚本。我希望能够计算将执行的单元测试 (nosetests
) 的数量(而不实际执行它们)并将该数字 return 放入 python 变量中,如下所示:
>>> number_of_unit_tests = count_unit_tests('.')
>>> number_of_unit_tests
400
我知道我可以像这样从命令行收集:
nosetests --collect-only
但是是否可以从脚本中执行此操作?
您可以 运行 任何鼻子命令形式 python 脚本,如 basic nose usage, the only trick would be to extract the number of tests. I took a look at functional tests in nose 中所述,并且认为这样的事情应该有效,但您也许可以 trim 再往下看:
import sys
import unittest
from cStringIO import StringIO
import nose
from nose.result import _TextTestResult
class TestRunner(unittest.TextTestRunner):
def _makeResult(self):
self.result = _TextTestResult(
self.stream, self.descriptions, self.verbosity)
return self.result
def count_unit_tests(module_name):
stream = StringIO()
runner = TestRunner(stream=stream)
result = nose.run(
testRunner=runner,
argv=[sys.argv[0],
module_name,
'-s',
'-v',
'--collect-only'
]
)
return runner.result.testsRun
if __name__ == '__main__':
print count_unit_tests('.')