如何用黄瓜罐子运行?

NeverSleeps:

我有黄瓜和Maven的项目。我可以运行和IntelliJ IDEA的成功打造我的项目。我可以运行使用命令行项目:mvn clean test -Dcucumber.options="src/test/resources/features --tags @TEST2"

现在,我需要从在另一台机器安装IDEA或黄瓜不具有命令行这一项目。我有一个想法,我需要建立一个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

救命!

  1. 我应该通过什么参数到A为了使测试运行?
  2. 我需要使用标签作为参数。怎么做?
NeverSleeps:

错误说,黄瓜没有看到步骤定义类。改变了类和错误消失

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" - 包含有步骤和挂钩的实现类包
  • "--tags" - 通过标签的运行测试的过滤器。这条线可以删除和值通过控制台通过:--tags @TEST2

  • "src/test/resources/features/"-有没有前缀,如最后一行"--keyword"-是路径与.feature文件的文件夹。该框架将搜索这一点,并在所有子文件夹的文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章