我正在使用 Selenium WebDriver、Maven 和 TestNG 进行自动化测试,并提出了一个看似独特的问题。我想使用 Maven 通过附加注释的值来运行测试方法。
背景:我们使用 TestRail 作为测试用例管理工具。 TestRail 为每个测试用例分配一个唯一的用例 ID。它还具有一些用于 UI 脚本添加功能的函数。我希望能够单击 TestRail UI 中的按钮并执行测试用例。
我正在为我们的 Selenium 项目设置 Maven,它已经能够在我的测试类池中运行特定测试类的特定方法。
我已经建立了一个系统,其中 @TestCaseID (value="12345") 注释添加到测试方法中,然后由 TestListener 拾取并用于将结果发送回 TestRail。
操作流程如下:
- 用户在 TestRail 中找到测试
- 用户点击按钮
- 一些小程序负责向 Maven 发出命令,要求运行特定的测试类和特定的测试注释。 (如果我可以跳过测试类部分并仅通过所有测试来查找该注释,那就太好了!)
- Maven 内部的某些东西会找出哪个测试方法具有正确的注释,然后运行该测试。
我发现,如果我忘记了 @TestCaseID 注释,而只是在测试方法名称中包含案例编号,也许这会更容易做到。这样,模式就能够找到并执行它。注释似乎是一种用相应的案例 ID 标记测试方法的干净方法,但它们对于任何事情都不是必需的。
完成这项任务的好方法是什么?
编辑:为了真正解决我的项目的这个问题,我决定我已经回答了我自己的问题,并且不会尝试基于注释值运行测试。我将只标记我的方法名称,这让我可以在 Maven 中做一些有趣的事情,例如“mvn verify -Dit.test=*#*12345”。
最佳答案
一种方法是“mvn -Dtest=*#*12345 test
”。正如您所回答的。
另一种方法是将测试用例 ID 添加到组中。然后使用 mvn test -Dgroups=12345
组也将有助于运行套件/用户故事/功能。
关于java - 如何使用 Maven 通过注释值搜索并运行 TestNG 测试方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181335/