Python是否具有与标准xUnit样式的测试框架兼容的单元测试框架?如果是这样,它是什么,它在哪里,它是否有益?
答案 0 :(得分:25)
Python有几个测试框架,包括unittest
,doctest
和nose
。最像xUnit的是unittest
,它在Python.org上有记录。
答案 1 :(得分:9)
我建议nose。
它是单元测试框架中最Pythonic的。测试运行器同时运行doctests和unittests,因此您可以自由使用您喜欢的任何测试方式。
答案 2 :(得分:3)
有testoob这是相当完整的测试套件。也是xUnit-ie,并且有一个很好的报告选项
答案 3 :(得分:2)
@Greg:PyUnit作为unittest
答案 4 :(得分:2)
考虑py.test。不完全类似于NUnit,但非常好,具有良好的功能,包括测试自动发现和“观察测试和代码 - 当某些更改重新运行上次失败的测试时。一旦所有测试通过,切换到全部运行一些事情发生变化时的测试。“选项。
答案 5 :(得分:1)
我推荐Nose。
在合理的简单安装之后,您只需在项目文件夹中运行“nosetests”,Nose将找到所有测试并运行它们。我也喜欢插件(coverage,GAE等)的集合以及直接从我的Python脚本中调用Nose的能力。
答案 6 :(得分:0)
还有PyUnit可能是您正在寻找的。 p>
答案 7 :(得分:0)
从未使用过xUnit,所以我不能告诉你框架是不是比较好/坏,但here是我编写的一个使用unittest框架的脚本(检查API是否正常工作),和doctest(检查我给出的工作的例子)
我唯一的问题是检查某些引发异常有点复杂(你必须传递一个引发异常的函数/ lambda,而不仅仅是命令本身,就像框架的其余部分一样)。除此之外,它可以做到应有的,可靠的,并且它已经被包含在默认的python发行版中很长一段时间了。
答案 8 :(得分:0)
我喜欢它的原因有一个:在我在另一个框架中编写更广泛的测试之前,我几乎总是doctest。这是因为,对于基础测试,doctests一石二鸟。您可以获得可执行测试(尽管有时候写得有点笨拙)以及API文档和交互式文档。当您使用命令行选项(--with-doctest)时,nose将使用捆绑的doctest扩展名运行它们。
我说这是来自py.test作为我以前的最爱。虽然它很棒,鼻子测试对我来说足够相似,我不会错过它,我喜欢将各种测试方法集成在一个屋檐下,可以这么说。 YMMV,但我建议在选择另一个之前先仔细看看鼻子。如果你不熟悉py.test测试,你也应该看看它们。我发现它们非常棒,因为它们通常以这样的方式编写,即它们可以在没有测试框架的情况下轻松调试,这使得调试会话中涉及一个不那么棘手的系统。我发现这一点非常宝贵,而我认为它们比单元测试更容易编写。