我可以设置特征在空手道中应该 运行 的顺序吗?
Can i set the order in which the features should run in karate?
我总共有 14 个功能,其中一个用于清洁,我希望它最终成为 运行。但是当我 运行 我的套件时,它 运行 在测试的中间,因此打破了它。
我可以设置 运行 的顺序吗?
如果最后确实是一次性执行,您可以让 JUnit 通过添加 @AfterClass
来处理这一步
以下示例显示了您可以在何处添加前后代码。
@RunWith(Karate.class)
@CucumberOptions(features = "classpath:features")
public class TestRunner {
@BeforeClass
public static void beforeClass() {
System.out.println("BEFORE");
}
@AfterClass
public static void afterClass() {
System.out.println("AFTER");
}
}
目前功能执行的顺序取决于底层 Cucumber 实现。
空手道目前使用 cucumbers MultiLoader 从文件系统或类路径加载功能。
空手道版本 0.8.1 的黄瓜版本为 1.2.5,排序由 Java ClassLoader.getResources https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResources(java.lang.String)
决定
您将不得不担心您的目录结构和文件夹中文件的命名。
(附带说明,更简洁的方法是让每个功能完全独立于其他功能)。
如果您真的想强制执行功能的顺序,"Karate way" 将只执行一个功能,并让此功能依次调用您想要的功能,即:
指定 Runner 仅执行您的协调器功能:
@RunWith(Karate.class)
@CucumberOptions(features = "classpath:features/orchestrator.feature")
public class TestRunner {
@BeforeClass
public static void beforeClass() {
System.out.println("BEFORE");
}
@AfterClass
public static void afterClass() {
System.out.println("AFTER");
}
}
定义将按顺序调用其他功能的测试协调器:
Feature: Test orchestration feature
Scenario: Run all of the tests in order
* call read('first.feature')
* call read('second.feature')
* call read('third.feature')
以下是首先调用的示例功能:
Feature: First feature
Scenario: First
* print "first"
第二个:
Feature: Second feature
Scenario: Second
* print "Second"
第三个:
Feature: Third feature
Scenario: Third
* print "Third"
我总共有 14 个功能,其中一个用于清洁,我希望它最终成为 运行。但是当我 运行 我的套件时,它 运行 在测试的中间,因此打破了它。
我可以设置 运行 的顺序吗?
如果最后确实是一次性执行,您可以让 JUnit 通过添加 @AfterClass
来处理这一步以下示例显示了您可以在何处添加前后代码。
@RunWith(Karate.class)
@CucumberOptions(features = "classpath:features")
public class TestRunner {
@BeforeClass
public static void beforeClass() {
System.out.println("BEFORE");
}
@AfterClass
public static void afterClass() {
System.out.println("AFTER");
}
}
目前功能执行的顺序取决于底层 Cucumber 实现。
空手道目前使用 cucumbers MultiLoader 从文件系统或类路径加载功能。 空手道版本 0.8.1 的黄瓜版本为 1.2.5,排序由 Java ClassLoader.getResources https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResources(java.lang.String)
决定您将不得不担心您的目录结构和文件夹中文件的命名。
(附带说明,更简洁的方法是让每个功能完全独立于其他功能)。
如果您真的想强制执行功能的顺序,"Karate way" 将只执行一个功能,并让此功能依次调用您想要的功能,即:
指定 Runner 仅执行您的协调器功能:
@RunWith(Karate.class)
@CucumberOptions(features = "classpath:features/orchestrator.feature")
public class TestRunner {
@BeforeClass
public static void beforeClass() {
System.out.println("BEFORE");
}
@AfterClass
public static void afterClass() {
System.out.println("AFTER");
}
}
定义将按顺序调用其他功能的测试协调器:
Feature: Test orchestration feature
Scenario: Run all of the tests in order
* call read('first.feature')
* call read('second.feature')
* call read('third.feature')
以下是首先调用的示例功能:
Feature: First feature
Scenario: First
* print "first"
第二个:
Feature: Second feature
Scenario: Second
* print "Second"
第三个:
Feature: Third feature
Scenario: Third
* print "Third"