【问题标题】:Using Parameterized JUNIT integrating with Cucumber使用参数化 JUNIT 与 Cucumber 集成
【发布时间】:2017-05-29 11:40:52
【问题描述】:

长话短说,我有一个 JUNIT 测试,我想将它与 JMeter 集成。脚本由 Selenium WebDriver 与 Cucumber 集成编写。

这是我的主要方法,

public class SanityStart extends ClassUtility {
    private ClassUtility driver;
    private ClassUtility environment;
    private ClassUtility path;
    private ClassUtility userName;

    public static Logger log = Logger.getLogger(SanityStart.class.getName());

    public SanityStart(ClassUtility driver, ClassUtility environment, ClassUtility path, ClassUtility userName) {

        this.driver = driver;
        this.environment = environment;
        this.path=path;
        this.userName=userName;
    }

    @Test
    public void main(String[] args) throws Throwable {

        environment.environmentValue = args[0];
        path.pathValue = "@" +args[1];
        userName.superUser = args[2];
        System.setProperty("userName",userName.superUser);
        Main.main(new String[]{"-g", "bell.canada.step.definition", "-t", pathValue,  "C:/Users/IBM_ADMIN/Documents/Automation/Cr Automation/CR Automation/src/NewFeature.feature"});   
    }
}

由于我想重用该变量,我创建了一个包含依赖注入器变量的 ClassUtility。

public class ClassUtility {

    public WebDriver baseDriver;
    public String orderNo;
    public String pageIn;
    public String environmentValue;
    public String pathValue;
    public String superUser;
    public String profile1;
    public String profile2;

}

我需要在运行时从 JMeter 中获取环境、路径和用户名等值。因此,它会根据请求调用多个线程并进行负载测试。

当我尝试作为 JUNIT 测试运行时,我收到以下错误,

java.lang.Exception: 测试类应该有一个公共的零参数构造函数 java.lang.Exception: 方法 main 应该没有参数

需要您对我如何实现这一目标的建议/反馈! JUNIT测试中甚至可以有一个主要方法吗?提前致谢!

【问题讨论】:

  • 为什么我会得到,“测试类应该有一个公共的零参数构造函数”。这是否意味着我不能使用依赖注入的构造函数?

标签: java spring junit dependency-injection jmeter


【解决方案1】:

测试类应该有一个公共的零参数构造函数

这个异常告诉你SanityStart 构造函数不应该有任何参数。只有在使用 @Parameterized tests 或某些自定义测试运行器时才能使用它们。

方法 main 应该没有参数

这告诉你不能在 JUnit 中对带有参数的函数使用 @Test 注解。所以main 不能成为测试对象。要么测试一个无参数函数,要么使用一些非标准的运行器(检查this question)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 2022-01-13
    • 2020-11-20
    • 2018-10-20
    • 2018-02-04
    • 1970-01-01
    相关资源
    最近更新 更多