Как я могу выполнить Taurus junit?

Я сделал спецификацию теста Тельца:

execution:

  - executor: junit

    iterations: 5  # loop over test suite for 5 times

    concurrency: 20   # number of virtual users

    ramp-up: 1m       # time of load growing

    steps: 5          # number of steps of growing

    scenario:

      script: src/test



modules:

  junit:

    junit-version: 5

    working-dir: src/main/java

Мой модульный тест:

package org.steinko.springtutorial;



import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertTrue;

import org.steinko.springtutorial.Main;



public class MainTest {



    @Test

    void shouldReturnANumber(){

        Main main = new Main();

        String[] arg = new String[1];

        Main.main(arg);

        int  number = main.getNumber();

        assertTrue(0 < number);

        assertTrue(number < 100);





    }



}

Место моего исходного кода:

package org.steinko.springtutorial;



import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.context.ConfigurableApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



import org.steinko.springtutorial.NumberGenerator;



public class Main {



    private static final Logger log = LoggerFactory.getLogger(Main.class);

    private static int number;

    private static final String CONFIG_LOCATION = "beans.xml";



    public static void main(String[] args )

    {



        log.info("Guess the number game");

        ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(CONFIG_LOCATION);

        NumberGenerator numberGenerator = context.getBean("numberGenerator", NumberGenerator.class);

        number = numberGenerator.next();

        log.info("number = {}", number);

        context.close();

    }



    public  int getNumber() {

        log.info("getNumber",number);

        return number;

    }



}

Когда я запускаю bzt ./performanctests/unittests.yaml, я получаю сообщение об ошибке:

[2019-03-17 15:34:25,556 ERROR root] Ошибка дочернего процесса: Javac вышел с кодом: 1

/Users/stein/Development/игра-угадай-число/core/src/test/java/org/steinko/springtutorial/MainTest.java:7: ошибка: не удается найти символ

импортировать org.steinko.springtutorial.Main;

                             ^

символ: класс Основной

расположение: пакет org.steinko.springtutorial

/Users/stein/Development/игра-угадай-число/core/src/test/java/org/steinko/springtutorial/MainTest.java:15: ошибка: не удается найти символ

    Main main = new Main();

    ^

символ: класс Основной

расположение: класс MainTest

/Users/stein/Development/игра-угадай-число/core/src/test/java/org/steinko/springtutorial/MainTest.java:15: ошибка: не удается найти символ

    Main main = new Main();

                    ^

символ: класс Основной

расположение: класс MainTest

/Users/stein/Development/игра-угадай-число/core/src/test/java/org/steinko/springtutorial/MainTest.java:17: ошибка: не удается найти символ

    Main.main(arg);

    ^

символ: переменная Основной

расположение: класс MainTest

4 ошибки

Как исправить эту ошибку?


person stein korsveien    schedule 17.03.2019    source источник


Ответы (1)


Похоже, вы пытаетесь использовать внешнюю зависимость в своем классе Java. Taurus не собирает модуль до того, как попытается его скомпилировать. Таким образом, любые зависимости вашего проекта в пути к классам не будут распознаны. Решением этой проблемы является загрузка зависимостей в виде файлов .jar вместе с файлом .java в тесте BZ. По сути, любой класс/интерфейс, который вы импортируете в свой тестовый скрипт, должен предоставляться в виде jar-файла. Таким образом, ваш файл конфигурации будет выглядеть примерно так:


  - executor: junit

    iterations: 5  # loop over test suite for 5 times

    concurrency: 20   # number of virtual users

    ramp-up: 1m       # time of load growing

    steps: 5          # number of steps of growing

    scenario:

      script: src/test

      additional-classpath: # just an example - you can include your own .jar files
       - rest-assured-2.9.0.jar
       - log4j-1.2.17.jar
       - groovy-2.4.4.jar
       - rest-assured-common-2.9.0.jar
       - json-path-2.9.0.jar

modules:

  junit:

    junit-version: 5

    working-dir: src/main/java

Дополнительные сведения см. на странице https://gettaurus.org/docs/JUnit/.

person Amish Asher    schedule 27.08.2019