2016-12-19 5 views
0

Meine @Before und @After Methoden nach oben nicht durch Junit AbholungJunit 4 ist Kommissionierung nicht meine @Before & @After Methoden

public class TestSetup { 

    @Before 
    public void browserSetUp() { 
    // code for before a test 
    } 


    @After 
    public void tearDown() { 
     // code after a test 
    } 
} 

in einer anderen Klasse-Datei habe ich definiert

public class Steps{ 

@Step 
public void step1() { 
//Code for step 1 

} 

@Step 
public void step2() { 
// Code for Step 2 

} 

} 

Schließlich nenne ich diese Schritte für meinen Test-

public class Tests { 

Steps step = new Steps(); 

@Test 
public void TC_0001 { 
step.step1(); 
step.step2(); 

} 


} 

@Test Methode ausgeführt wird immer aber die 0.123.und @After Methoden werden nicht ausgeführt, bevor @Test Methode. Muss ich die TestSetup Klasse irgendwo enthalten? Jede Hilfe wird geschätzt.

** Gedanke 1: Wie ich bin mit Maven zu bauen, meine @Before@After Methoden liegt in einer Klasse (TestSetup .java - Name nicht mit *Test.java endet und kann, das ist, warum Maven ist es nicht für die Ausführung Kommissionierung? .

Antwort

1

@Before und @After in derselben Klasse verwendet werden, die Ihren Test ausgeführt wird, sollten Sie diese Methoden Klasse auf dem Prüfstand:

public class Tests { 

    Steps step = new Steps(); 

    @Test 
    public void TC_0001 { 
     step.step1(); 
     step.step2(); 
    } 

    @Before 
    public void browserSetUp() { 
     // code for before a test 
    } 


    @After 
    public void tearDown() { 
     // code after a test 
    } 

} 
+0

Anstatt alles in die gleiche Klasse '(@Test, @Before & @After)' zu setzen, gibt es eine Möglichkeit, die ich in einer anderen Klasse wie 'TestSetup' definieren kann? Erben Sie dann von 'TestSetup' in der Klasse' Tests'? – avirup

0

@Before und @After sind nur vor einem einzigen ausgeführt Test, wenn sie in der gleichen Klasse wie die @Test definiert sind. In Ihrem Fall enthält die Klasse TestSetup keine Tests. Also entweder lassen Sie Test erben von TestSetup oder Sie erstellen eine rule, die "um" Ihren Test ausgeführt wird.

+0

Also, wenn ich die Methoden von TestSetup vererben, indem ich folgende 'public class Test s erweitert TestSetup {@Test public void TC_0001 {// code}}' Es immer noch nicht wokring – avirup

Verwandte Themen