问题:用Python编写单元测试:如何开始?[关闭]
我用Python完成了第一个适当的项目,现在的任务是为它编写测试。
由于这是我第一次做项目,所以这是我第一次为此编写测试。
问题是,我该如何开始?我真的一点儿都不知道。谁能指出我一些可以用来开始编写测试的文档/教程/链接/书(尤其是单元测试)
关于该主题的任何建议都将受到欢迎。
回答 0
如果您是第一次使用单元测试,那么最简单的学习方法通常是最好的。在此基础上,我建议使用py.test
而不是默认unittest
模块。
考虑以下两个示例,它们具有相同的作用:
示例1(单元测试):
import unittest
class LearningCase(unittest.TestCase):
def test_starting_out(self):
self.assertEqual(1, 1)
def main():
unittest.main()
if __name__ == "__main__":
main()
示例2(pytest):
def test_starting_out():
assert 1 == 1
假设两个文件都被命名test_unittesting.py
,我们如何运行测试?
示例1(单元测试):
cd /path/to/dir/
python test_unittesting.py
示例2(pytest):
cd /path/to/dir/
py.test
回答 1
免费的Python书籍Dive Into Python中有关于单元测试的一章,您可能会觉得很有用。
如果您遵循现代实践,则可能应该在编写项目时编写测试,而不要等到项目接近完成时再进行测试。
现在有点晚,但是现在您知道下一次了。:)
回答 2
在我看来,有三个很棒的python测试框架值得一试。
单元测试 -模块配备了所有的Python发行标准
鼻子 -可以运行单元测试的测试,而且具有更少的样板。
pytest-还运行单元测试,样板更少,报告更好,还有很多很棒的额外功能
为了对所有这些进行良好的比较,请阅读http://pythontesting.net/start-here的每个介绍。
也有关于灯具的扩展文章,还有更多。
回答 3
的文档 单元测试将是一个良好的开端。
另外,现在有点晚了,但是将来请考虑在项目本身之前或期间编写单元测试。这样,您可以使用它们进行测试,并且(理论上)可以将它们用作回归测试,以验证您的代码更改没有破坏任何现有代码。这将为您带来编写测试用例的全部好处:)
回答 4
回答 5
正如其他人已经回答的那样,编写单元测试已经晚了,但还不算太晚。问题是您的代码是否可测试。确实,要对现有代码进行测试并不容易,甚至有一本关于此的书:有效地使用遗留代码(请参见要点或前期PDF)。
现在编写或不编写单元测试就是您的要求。您只需要意识到这可能是一项繁琐的任务。您可以解决此问题,以学习单元测试或考虑首先编写验收(端对端)测试,然后在更改代码或向项目添加新功能时开始编写单元测试。
回答 6
鼻子测试是在python中进行单元测试的出色解决方案。它同时支持基于单元测试的测试用例和doctest,并且只需简单的配置文件就可以开始使用它。