如何获取在java8及更旧的依赖项中运行的当前功能文件名?

问题描述 投票:0回答:1

如何使用 DriverFactory 类或旧依赖项版本和 java 8 的运行程序文件获取在 java 中运行的当前功能文件名?

我尝试使用功能场景,但它对我不起作用。有什么方法可以在运行时动态获取功能文件的当前名称或标签?

java maven cucumber pom.xml bdd
1个回答
0
投票

要获取 Cucumber-Java 测试中当前正在执行的功能文件的名称,一种常见的方法是使用

Before
钩子并从提供给钩子方法的
Scenario
对象中提取详细信息。

下面的示例演示了如何获取特征文件名和标签:

import cucumber.api.Scenario;
    import cucumber.api.java.Before;
    
    public class Hooks {
    
        @Before
        public void beforeScenario(Scenario scenario) {
            String featureName = "Feature ";
            String rawFeatureName = scenario.getId().split(";")[0].replace("-"," ");
            featureName = featureName + rawFeatureName.substring(0, 1).toUpperCase() + rawFeatureName.substring(1);
            
            // print the feature name
            System.out.println("Feature Name: " + featureName);
    
            // print scenario's tags
            for (String tag : scenario.getSourceTagNames()) {
                System.out.println("Tag: " + tag);
            }
        }
    }

一些注意事项:

  • scenario.getId() 返回一个包含要素文件的路径和名称的字符串。用“;”分割该字符串给出一个数组,其中第一个元素是特征名称的“slugified”版本. 然后,我们对经过 slugified 的功能名称进行操作,将其转换回更易读的功能名称。

  • scenario.getSourceTagNames() 返回场景的一组标签。 这种方法适用于许多旧版本的 Cucumber,特别是如果您使用的是 Java 8。但请记住,可用的确切方法及其行为可能会有所不同,具体取决于您使用的 Cucumber 库的特定版本。

© www.soinside.com 2019 - 2024. All rights reserved.