生成测试用例的简单库。
python_wrap_cases的Python项目详细描述
用于生成带有参数的测试用例的简单库。
这是什么?
这个库帮助生成带有参数的测试。
让我们为这个函数编写一些测试:
importredefclear_start_end_dash(string):returnre.sub(r'^[\s\-]*-|-[\s\-]*$','',string)
我们可以这样写:
fromunittestimportTestCaseclassClearStartEndDashTest(TestCase):deftest_remove_first_dash(self):result=clear_start_end_dash('-my string')self.assertEqual(result,'my string')deftest_remove_all_first_dashes(self):result=clear_start_end_dash('- -- --my string')self.assertEqual(result,'my string')deftest_remove_last_dash(self):result=clear_start_end_dash('my string-')self.assertEqual(result,'my string')deftest_remove_all_last_dashes(self):result=clear_start_end_dash('my string-- -- -- - ')self.assertEqual(result,'my string')deftest_keep_dash_at_center(self):result=clear_start_end_dash('my-string')self.assertEqual(result,'my-string')
很好,但是我们花了很多时间来编写那些完全相同的测试函数。
因此,让我们减少重复函数的数量:
fromunittestimportTestCaseclassClearStartEndDashDryTest(TestCase):deftest_remove_dash(self):cases=(('-my string','my string'),('- -- --my string','my string'),('my string-','my string'),('my string-- -- -- - ','my string'),('my-string','my-string'))forstring,expected_resultincases:result=clear_start_end_dash(string)self.assertEqual(result,expected_result)
此代码有几个问题:
- 易写难读。
- 我们不能在每个案例中使用测试夹具(设置,拆卸)。
- 如果有一个案子失败了,其他的案子就跑不了了。
- 如果testtest_remove_dash失败,它将无法帮助我们找出发生了什么。
看看我们使用这个库可以多么容易地解决这些问题:
fromunittestimportTestCasefrompython_wrap_casesimportwrap_case@wrap_caseclassClearStartEndDashWrapTest(TestCase):@wrap_case('-my string','my string')@wrap_case('- -- --my string','my string')@wrap_case('my string-','my string')@wrap_case('my string-- -- -- - ','my string')@wrap_case('my-string','my-string')deftest_remove_dash(self,string,expected_result):result=clear_start_end_dash(string)self.assertEqual(result,expected_result)
此代码生成5个测试,其工作方式类似于一个简单的测试函数。
控制台输出:
test_remove_dash_u'- -- --my string'_u'my string' (tests.example.test_simple_test.ClearStartEndDashWrapTest) ... ok test_remove_dash_u'-my string'_u'my string' (tests.example.test_simple_test.ClearStartEndDashWrapTest) ... ok test_remove_dash_u'my string-'_u'my string' (tests.example.test_simple_test.ClearStartEndDashWrapTest) ... ok test_remove_dash_u'my string-- -- -- - '_u'my string' (tests.example.test_simple_test.ClearStartEndDashWrapTest) ... ok test_remove_dash_u'my-string'_u'my-string' (tests.example.test_simple_test.ClearStartEndDashWrapTest) ... ok
历史记录
0.1.0(2015-06-26)
- pypi上的第一个版本。
0.1.2(2015-06-26)
- 修复生成器导入
0.1.3(2015-06-26)
- 添加一些文档
0.1.4(2015-06-29)
- 自述文件添加分号
- 修复pypi自述文件
0.1.5(2015-07-01)
- 自述文件删除:;
0.1.6(2015-07-01)
- 为Python3.2添加测试
0.1.7(2015-07-10)
- 添加六个依赖项
0.1.8(2015-08-21)
- 添加func生成器
- 添加范围生成器
- 修复自定义生成器中迭代器的问题
- 为声明包装的测试用例添加新的api。(添加了不带参数的包装盒装饰符)