在Intellij IDEA 2022.2.2中通过调用单个测试(如这些测试是变量)执行多测试运行

nukf8bse  于 2023-04-05  发布在  IntelliJ IDEA
关注(0)|答案(1)|浏览(138)

我是一个自动化测试人员,我用Gherkin+selenium和java编写自动化测试。我有不同的场景要测试,我有很多与同一功能相关的测试。我想做的是创建一个单一的功能文件,它可以调用与同一功能相关的自动化测试。让我们给予一个例子
Sprint X,有3个自动测试分析Login特性。- login with wrong credential - login with expired credential - login with correct credential Sprint X,有2个自动测试分析Login特性。- login with blabla - login with xyz期望创建一个分组的,称为LOGIN.feature,通过调用单个测试,就像我们通常对变量所做的那样
实际上,我所做的是创建一个新的功能文件(我称之为“分组一”),将自动测试的小 cucumber 步骤从这些sprint复制并粘贴到分组一。真实的的问题是:如果在单个测试中有什么变化,我需要修复测试和“分组测试”。
我在请求你的帮助
先谢谢你,
最好的问候x1c 0d1x

dly7yett

dly7yett1#

不使用“分组”场景,您可以使用组功能标记单个FeaturesScenario元素。
例如:

@login
Feature: Login with LDAP

  Scenario: ...
     ...
  Scenario: ...
     ...
Feature: Password authentication

  @login
  Scenario: Login with username and password
     ...
  
  Scenario: Reset password
     ...

然后使用测试工具运行一组特定的场景来匹配一个标签。
如果你使用Maven和cucumber-junit-platform-engine,你可以用途:

mvn verify -Dgroups="login"

这将运行上面示例中的3个场景。groups的值是JUnit 5标记表达式,因此可以进行更复杂的选择。阅读文档是明智的。
如果您使用Maven和cucumber-junitcucumber-testng,则可以用途:

mvn verify -Dcucumber.filter.tags=@login

cucumber.filter.tags的值是一个Cucumber标签表达式,因此可以进行更复杂的选择。
前面的两个例子使用了Maven。如果你使用的是cucumber-junit-platform-engine,你也可以在JUnit Suite中使用IncludeTags annotation来声明性地选择测试。例如:

@Suite
@IncludeEngines("cucumber")
@SelectClasspathResource("com/example/features")
@IncludeTags("login")
public class RunCucumberTest {
}

相关问题