当前位置: 首页 > 知识库问答 >
问题:

运行Cucumber JVM@BeforeClass而不带特性文件

濮冠宇
2023-03-14

我所拥有的

我正在使用Selenium WebDriver运行Cucumber JVM来自动化我们的系统测试用例。这些测试用例目前使用XRay测试管理插件存储在JIRA中。XRay还提供了获取特性文件以及将结果上传到JIRA的API。

我已经创建了一个自定义的JIRA实用程序类来下载测试作为特性文件,并将测试结果从JIRA中上载到JIRA中,同时还演示了它的工作原理。它们分别在Cucumber Runner类的@BeforeClass和@AfterClass中运行。

正在发生的事情(或者更具体地说,未发生的事情)

当我尝试在框架中没有任何特性html" target="_blank">文件的情况下执行Cucumber Runner类时,Cucumber说“在[src/test/resources/features/]处没有特性”。这是可以理解的,因为还没有特性文件。

但是,它不运行@BeforeClass;因此,它不会下载要运行的功能文件。我在runner类中使用和不使用标记都尝试过这种方法。

@RunWith(Cucumber.class)
@CucumberOptions( 
        tags={"@smoketests"}, 
        features= {"src/test/resources/features/"},
        plugin={"json:target/reports/cucumber.json"},
        monochrome=true)
public class RunCucumberTest {

    @BeforeClass
    public static void executeBeforeTests() {
        JiraUtil.getFeatureFiles();

        //String browser = "firefox";
        String browser = "chrome";
        //String browser = "safari";
        //String browser = "edge";
        //String browser = "ie";
        DriverUtil.getInstance().setDriver(browser);
    }

    @AfterClass
    public static void executeAfterTests() {
        DriverUtil.getInstance().resetDriver();

        JiraUtil.uploadTestResults();
    }
}

共有1个答案

乜明朗
2023-03-14

这是使用JUnit时的预期行为。当测试套件中没有测试或忽略所有测试时,测试套件将不会调用@BeforeClass@AfterClass@ClassRule[1]。这就避免了执行一个潜在的昂贵的设置。

这意味着您不能使用类规则来引导测试。你也不应该试图这样做。在构建过程中,在编译之前获取所有源和资源是一个很好的实践。

如果您正在使用maven,可以编写一个maven,并将其附加到generate-test-sources阶段[2]。创建一个maven插件比JUnit规则要多一些,但并不是禁止性的。查看Java插件开发指南。

 类似资料:
  • 我编写了两个功能文件,每个功能文件打开不同的浏览器URL,例如一个是open google。com和secnd一个开放的亚马逊。但事实并非如此。 两个浏览器都打开了谷歌。通用域名格式。此外,它不能与浏览器交互,任何编码到浏览器的操作都不会执行。此外,关闭第一个浏览器会导致第二个浏览器出现空指针异常。 cucumber版本6我从AbstractCucumberTesNG继承开始。然后我创建登录。功能

  • 问题内容: 我正在尝试执行JUnit测试期间从我的类路径中加载sample.properties,它在类路径中找不到文件。如果编写Java Main类,则可以很好地加载文件。我正在使用以下ant任务执行我的JUnit。 JUnit: 输出: 问题答案: 您需要添加到。 更新 :根据评论中的交流,事实证明不是问题所在。而是使用了错误的类加载器。 根据加载类的类加载器查找资源的路径。事实证明,该类是由

  • 我想得到cucumber报告,但它没有生成。我得到这个错误在运行通过mvn清洁安装。我不能解决这个问题。我是自动化方面的新手... /*在以Maven Clean安装方式运行期间,我遇到以下错误: 以下文章:[错误][帮助1]http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

  • 问题内容: 我正在部署用Java编写的接受命令行参数的命令行工具。我将其打包为JAR文件,因为使用单个文件很方便。 问题是要运行它,您必须先调用它,这很烦人。 我目前拥有的方法是启动一个简单的bash脚本,但这并不理想。 无论如何(在Linux,Ubuntu Server中)是否可以制作一个JAR文件来单独调用Java VM?我一直在寻找Shebang,但找不到它(这是合理的,因为它是编译后的代码

  • 我有一些cucumber特性,可以通过IDE运行find功能,但现在我需要通过命令行使用“mvn test”命令来执行它们。 CMD输出如下: