gpt4 book ai didi

java - 如何使用jar运行 cucumber ?

转载 作者:行者123 更新时间:2023-12-04 10:37:57 25 4
gpt4 key购买 nike

我有一个 cucumber 和 Maven 项目。
我可以从 Intellij IDEA 成功运行和构建我的项目。
我可以使用以下命令从命令行运行项目:mvn clean test -Dcucumber.options="src/test/resources/features --tags @TEST2"
现在我需要在另一台没有安装 IDEA 或 cucumber 的机器上从命令行启动这个项目。我有一个想法,我需要创建一个 jar 文件并从命令行完全运行它。

CucumberTest.java 本身:

@RunWith(Cucumber.class)
@CucumberOptions(
monochrome = true,
glue = {"ru.ab.cd.stepDefs", "ru.abcd.tag.stepdefs"},
features = {"src/test/resources/features/"},
tags = {"@TEST1"},
plugin = {"pretty", "html:target/cucumber-html-report"}
)

public class CucumberTest {
}

TestRunner.java ,运行 CucumberTest.java。我专门制作了这个类,以便能够从命令行运行。我想传递 arguments 的值从命令行。但是我还是不明白应该传递什么值,尝试通过传递来找出 testArguments .

public class TestRunner{

public static void main(String[] args) throws Throwable {
String[] testArguments = {"/BitBucketProjects/abc/src/test/resources/features/smoke/TEST2.feature"};
cucumber.api.cli.Main.main(testArguments);
}
}

运行 TestRunner.java 时的结果。测试本身没有开始。所有步骤都已定义,如果我通过 CucumberTest.java 运行相同的测试,一切都会成功。
UUUUUUU

1 Scenarios (1 undefined)
7 Steps (7 undefined)
0m0,014s


You can implement missing steps with the snippets below:

@Допустим("^пользователь переходит на страницу авторизации$")
public void пользователь_переходит_на_страницу_авторизации() {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}

@Допустим("^пользователь находится на странице \"([^\"]*)\"$")
public void пользователь_находится_на_странице(String arg1) {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}

@Допустим("^пользователь загружает тестовые данные из json-файла$")
public void пользователь_загружает_тестовые_данные_из_json_файла() {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}

@Допустим("^пользователь авторизуется с ролью \"([^\"]*)\"$")
public void пользователь_авторизуется_с_ролью(String arg1) {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}

@Допустим("^ПРОВЕРКА\\. Ссылка \"([^\"]*)\" отображается на текущей странице$")
public void проверка_Ссылка_отображается_на_текущей_странице(String arg1) {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}

@Допустим("^ПРОВЕРКА\\. Таблица \"([^\"]*)\" отображается на текущей странице$")
public void проверка_Таблица_отображается_на_текущей_странице(String arg1) {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}


Process finished with exit code 0

帮助!
  • 我应该向 A 传递什么参数才能运行测试?
  • 我需要使用标签作为参数。怎么做?
  • 最佳答案

    该错误表示 cucumber 没有看到带有步骤定义的类。更改了类,错误消失了

    public class RunnerTest {
    private static String[] defaultOptions = {
    "--glue", "ru.ab.cd.stepDefs",
    "--glue", "ru.abcd.tag.stepdefs",
    "--tags", "@TEST2",
    "src/test/resources/features/"
    };

    public static void main(String[] args) throws Throwable {
    Stream<String> cucumberOptions = Stream.concat(Stream.of(defaultOptions), Stream.of(args));
    cucumber.api.cli.Main.main(cucumberOptions.toArray(String[]::new));
    }
    }
  • "--glue" - 包含具有实现的类的包
    台阶和 Hook
  • "--tags" - 按标签运行测试的过滤器。可以删除这一行并通过控制台传递值:--tags @TEST2
  • "src/test/resources/features/" - 最后一行没有前缀,如 "--keyword" - 是包含 .feature 文件的文件夹的路径。
    该框架将在此文件夹和所有子文件夹中搜索文件。
  • 关于java - 如何使用jar运行 cucumber ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60072586/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com