2017-05-29 4 views
0

Lange Rede kurzer Sinn, ich habe einen JUNIT-Test, den ich mit JMeter integrieren möchte. Die Skripte wurden von Selenium WebDriver geschrieben und in Cucumber integriert.Verwendung parametrisierter JUNIT Integration mit Gurke

Das ist meine wichtigste Methode,

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"}); 
    } 
} 

Da möchte ich die Variable ich eine ClassUtility erstellen müssen wieder verwenden, die die Abhängigkeit Injector Variablen enthält.

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; 

} 

Ich brauche die Werte wie Umgebung, Pfad und userName in Runtime von JMeter. Auf der Grundlage der Anfrage wird es also mehrere Threads aufrufen und Tests laden.

Wenn ich versuche, wie JUnit-Test zu laufen, ich bin den folgenden Fehler, immer

java.lang.Exception: sollte Test-Klasse genau einen öffentlichen Konstruktor ohne Argumente java.lang.Exception : Methode main sollte keine Parameter haben

Brauchen Sie Ihre Vorschläge/Feedback, wie ich das erreichen kann! Ist es sogar möglich, eine Hauptmethode im JUNIT-Test zu haben? Danke im Voraus!

+0

Auch Warum bekomme ich, "Test-Klasse sollte genau einen öffentlichen Zero-Argument-Konstruktor haben". Bedeutet das, dass ich keinen Konstruktor mit Abhängigkeitsinjektion haben kann? – Mathan

Antwort

0

Test-Klasse sollte genau einen öffentlichen Konstruktor ohne Argumente

Diese Ausnahme Ihnen sagt, dass SanityStart Konstruktor keine Argumente haben. Sie können sie nur verwenden, wenn Sie @Parameterized tests oder einen benutzerdefinierten Test Runner verwenden.

Methode Haupt sollte keine Parameter haben

Dies sagt Ihnen, dass Sie nicht @Test Anmerkung für die Funktion mit den Parametern in JUnit verwenden können. So kann main nicht Gegenstand des Tests sein. Testen Sie entweder eine argumentlose Funktion oder verwenden Sie einen nicht standardmäßigen Runner (siehe this question).

Verwandte Themen