如何执行Taurus junit?

时间:2019-03-17 15:49:40

标签: java junit5 taurus

  

我做了金牛座的测试准备工作

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错误root]子进程错误:Javac已退出   代码:1

     

/Users/stein/Development/guess-the-number-game/core/src/test/java/org/steinko/springtutorial/MainTest.java:7:   错误:找不到符号

     

import org.steinko.springtutorial.Main;

                             ^
     

符号:Main类

     

位置:包org.steinko.springtutorial

     

/Users/stein/Development/guess-the-number-game/core/src/test/java/org/steinko/springtutorial/MainTest.java:15:   错误:找不到符号

    Main main = new Main();

    ^
     

符号:Main类

     

位置:MainTest类

     

/Users/stein/Development/guess-the-number-game/core/src/test/java/org/steinko/springtutorial/MainTest.java:15:   错误:找不到符号

    Main main = new Main();

                    ^
     

符号:Main类

     

位置:MainTest类

     

/Users/stein/Development/guess-the-number-game/core/src/test/java/org/steinko/springtutorial/MainTest.java:17:   错误:找不到符号

    Main.main(arg);

    ^
     

符号:变量Main

     

位置:MainTest类

     

4个错误

     

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

这似乎是您在尝试在Java类中使用外部依赖关系。 Taurus在尝试编译之前并没有完全构建模块。因此,您的项目在类路径中具有的任何依赖项都不会被识别。解决方案是在BZ测试中将依赖项作为.jar文件以及.java文件上传。基本上,您在测试脚本中导入的任何类/接口都应以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/