raz*_*zeh 5 python testing unit-testing
我正在寻找一个简单的例子来演示如何使用testtool的并发测试.我从这里找到了一个例子:
import unittest
import testtools
class MyTester(unittest.TestCase):
# Tests...
suite = unittest.TestLoader().loadTestsFromTestCase(MyTester)
concurrent_suite = testtools.ConcurrentStreamTestSuite(lambda: ((case, None) for case in suite))
concurrent_suite.run(testtools.StreamResult())
Run Code Online (Sandbox Code Playgroud)
但是,它遇到了一个相当大的问题.它不会告诉您测试是否通过或失败.StreamResult对象不仅是临时的,StreamResult的方法也不做任何事情.
根据StreamResult文档,该status方法被调用来处理事件,默认实现什么也不做。
为了让它打印一些你需要继承它来做你想做的事情。例如,要打印正在发生的事情:
import unittest
import testtools
class MyTester(unittest.TestCase):
def test_foo(self):
self.assertEqual(1+2, 2)
def test_foo2(self):
self.assertEqual(1+2, 3)
class TracingStreamResult(testtools.StreamResult):
def status(self, *args, **kwargs):
print('{0[test_id]}: {0[test_status]}'.format(kwargs))
suite = unittest.TestLoader().loadTestsFromTestCase(MyTester)
concurrent_suite = testtools.ConcurrentStreamTestSuite(lambda: ((case, None) for case in suite))
result = TracingStreamResult()
result.startTestRun()
concurrent_suite.run(result)
result.stopTestRun()
Run Code Online (Sandbox Code Playgroud)
但是,已经有多个类继承了StreamResult. 因此,您可能不需要定义自己的版本。请参阅TestResult 的扩展。
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |