python - 是否可以让 Nose 只运行 TestCase 或 TestSuite 子类的测试(如 unittest.main())

标签 python unit-testing nose

我的测试框架目前基于一个测试运行器实用程序,该实用程序本身派生自 Eclipse pydev python 测试运行器。我转而使用 Nose,它具有我的自定义测试运行程序的许多功能,但似乎是质量更好的代码。

我的测试套件包括许多以前从未运行过的抽象测试类。标准的 python 测试运行器(和我的自定义测试运行器)只运行 unittest.TestCase 和 unittest.TestSuite 的实例。

我注意到,自从我切换到 Nose 后,它几乎运行任何以名称“test”开头的东西,这很烦人......因为我们用于测试混合的命名约定看起来也像 Nose 的测试类.以前这些从未作为测试运行,因为它们不是 TestCase 或 TestSuite 的实例。

显然,我可以重命名这些方法以从它们的名称中排除“测试”一词……这需要一段时间,因为测试框架非常大并且有很多继承。另一方面,如果有一种方法可以使 Nose 仅​​将 TestCases 和 TestSuites 视为可运行的……而没有其他任何东西,那将是很好的。

这可以做到吗?

最佳答案

您可以尝试为 nosetests 使用 -m 选项。来自文档:

A test class is a class defined in a test module that matches testMatch or is a subclass of unittest.TestCase

-m 设置 testMatch,这样您就可以禁用以 test 开头的任何测试。

另一件事是,您可以将 __test__ = False 添加到您的测试用例类声明中,以将其标记为“不是测试”。

关于python - 是否可以让 Nose 只运行 TestCase 或 TestSuite 子类的测试(如 unittest.main()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110967/

相关文章:

python - 如何在非默认数据库中创建用户?

c# - 单元测试抛出异常如何获得100%的覆盖率?

unit-testing - 分发包含单元测试的 R 包

python - 是否可以使用 unit2 运行 doctests

Python - 在字典中声明方法名称,并在外部类中声明方法定义

python - 最大和子数组 - 分而治之

python - 返回更新系列的 pandas.Series 方法

使用 robolectric 进行 Android gradle 测试

html - Python3 单元测试 HTML 报告

python - django doctests 没有运行