Bagaimana cara menjalankan mentimun menggunakan toples?

Saya punya proyek dengan mentimun dan pakar. Saya dapat menjalankan dan membangun proyek saya dengan sukses dari Intellij IDEA. Dan saya dapat menjalankan proyek dari baris perintah menggunakan: mvn clean test -Dcucumber.options="src/test/resources/features --tags @TEST2"

Sekarang saya memerlukan proyek ini dari baris perintah di komputer lain yang tidak menginstal IDEA atau mentimun. Saya punya ide bahwa saya perlu membuat file jar dan menjalankannya dari baris perintah.

CucumberTest.java itu sendiri:

@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, yang menjalankan CucumberTest.java. Saya membuat kelas ini khusus untuk dapat dijalankan dari baris perintah. Saya ingin memberikan nilai untuk arguments dari baris perintah. Namun saya masih belum mengerti nilai apa yang harus diteruskan dan mencoba mencari tahu dengan meneruskan 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);
    }
}

Hasil ketika saya menjalankan TestRunner.java. Tes itu sendiri tidak dimulai. Semua langkah sudah ditentukan, jika saya menjalankan tes yang sama melalui CucumberTest.java, semuanya berhasil.

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

Membantu!

  1. Parameter apa yang harus saya berikan ke A agar pengujian dapat berjalan?
  2. Saya perlu menggunakan tag sebagai parameter. Bagaimana cara melakukannya?

person NeverSleeps    schedule 05.02.2020    source sumber


Jawaban (1)


Kesalahannya mengatakan bahwa mentimun tidak melihat kelas dengan definisi langkah. Mengubah kelas dan kesalahannya hilang

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" - paket yang berisi kelas dengan implementasi langkah dan kait
  • "--tags" - filter untuk menjalankan pengujian berdasarkan tag. Baris ini dapat dihapus dan nilainya diteruskan melalui konsol: --tags @TEST2

  • "src/test/resources/features/" - baris terakhir yang tidak memiliki awalan seperti "--keyword" - adalah jalur ke folder dengan file .feature. Kerangka kerja akan mencari file di folder ini dan di semua folder anak.

person NeverSleeps    schedule 05.02.2020