Nose2是Python中流行的测试运行器,可以检测项目中的单元测试并执行它们。如果您熟悉unittestPython的标准库并且更喜欢Python中的其他测试自动化框架,那么您应该简要了解一下Nose2Python。
Nose2Python基于unittest该框架并通过其丰富的插件生态系统为该框架增加了更多价值。简单来说,Nose2是unittest模块的扩展。我们之前关于SeleniumPythonNose教程的博客深入探讨了旧版本的Nose(1..7)。它仍然被一定比例的开发和测试兄弟会使用。
在这篇博客中,我们研究了Nose2框架,它是Nose的继承者。在本PythonNose教程结束时,您将能够舒适地利用Nose2中的插件来增强您的SeleniumPython测试体验以实现Selenium测试自动化。
Nose2框架介绍
Nose2是Nose的继任者,旨在进行扩展unittest以简化测试过程。Nose2基于unittest2的plugins分支。
与Nose和相比unittest,Nose2提供了更好的插件API并简化了内部接口和流程。Nose2模块中内置了许多插件,默认情况下会加载这些插件。默认加载的一些主要插件有助于测试的参数化、将测试夹具组织成层、捕获日志消息、提供测试覆盖率报告等等。
默认情况下,Nose2不支持并行测试执行,这是一个广泛用于测试自动化的功能。然而,在Nose2中加载插件并不棘手,因为插件模块名称可以毫不费力地添加到配置文件[unittest]部分的插件列表中。还有一个选项可以在命令行上使用--plugin参数传递插件模块。
因此,使用Nose2与多个进程并行运行测试只是通过前面提到的任一选项启用插件!Nose2在GitHub上可用。以下是有关Github上该项目的更多详细信息:
叉子–10使用者–.4K加星-贡献者-61发布–28提交–
如何安装Nose2框架
在我们开始学习这个PythonNose教程之前,您需要在您的系统中安装Nose2框架(如果您还没有的话)。可以通过在终端上执行以下命令来安装Nose2:
pipinstallnose2
从下面的安装快照中可以看出,安装的是0.9.2版本的Nose2。
在实现中使用importnose2可以导入nose2包。如果要使用包中的特定模块,可以使用以下命令导入相同的模块:
fromnose2.package_nameimportmodule_name
如何执行Nose2Python测试
由于Nose2与Nose不同,Nose2中触发测试的命令也不同。这是在Nose2中执行测试的命令:
nose2--verbosefilename_without_.py
例如,如果包含Nose2测试的文件名是Test_Nose2_example.py,则用于执行内部测试的命令应该是:
nose2--verboseTest_Nose2_example
Nose2测试运行器提供了许多用于捕获日志、报告等的选项,可以通过在执行测试时在控制台上传递它们来使用:
Nose2中的测试发现
模块(或文件)和以开头的测试用例遵循的命名法test_适用于Nose2。包含测试方法的测试类应该以Test.
Nose2提供了一个插件来实现自动测试模块发现。该插件在名称以test开头的包和目录中查找模块(或测试文件)。然后它触发loadTestsFromModule()所有发现的钩子,允许其他插件加载实际测试。您可以在Nose2中找到有关基于发现的测试加载器的更多详细信息。
Nose2框架的示例用法
为了演示本PythonNose教程中Nose2框架的使用,我们使用前面演示Nose时使用的相同示例,即Google搜索LambdaTest,然后单击第一个测试结果。
importunittestfromseleniumimportwebdriverimporttimefromtimeimportsleepfromselenium.webdriver.