是否有一些 API(用于 Java 语言)可用于:
我打算用 REST 端点包装这些 API。
如果您将 Cucumber 与 JUnit (5) Platform Engine 结合使用,则可以使用 JUnit Launcher API 以编程方式执行所有这些操作。
例如列出所有标签:
package io.cucumber.skeleton;
import io.cucumber.junit.platform.engine.Constants;
import org.junit.platform.engine.discovery.DiscoverySelectors;
import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.TestIdentifier;
import org.junit.platform.launcher.TestPlan;
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
import org.junit.platform.launcher.core.LauncherFactory;
public class LauncherDemo {
public static void main(String[] args) {
Launcher launcher = LauncherFactory.create();
TestPlan testPlan = launcher.discover(
LauncherDiscoveryRequestBuilder.request()
.configurationParameter(Constants.JUNIT_PLATFORM_NAMING_STRATEGY_PROPERTY_NAME, "long")
.selectors(DiscoverySelectors.selectPackage("io.cucumber.skeleton"))
.build()
);
testPlan.getRoots().stream()
.flatMap(root -> testPlan.getDescendants(root).stream())
.filter(TestIdentifier::isTest)
.forEach(testIdentifier -> {
System.out.println(testIdentifier.getDisplayName() + " " + testIdentifier.getTags());
});
}
}