2016-07-29 39 views
0

läuft Ich mache einige Junit Tests in Spring und in meiner Testklasse muss ich einige Testdaten verwenden.Kann ich TestNG DataProvider im Spring-Kontext verwenden, d. H. In meinem Testcode, der mit SpringJUnit4ClassRunner

Ich google gesucht und es gibt viele Möglichkeiten, wie - Parameterized Klasse, TestNG Data Provider, [junit-dataprovider][1] usw.

ich aber TestNG Datenanbieter und erstellt eine einfache Klasse für meine Testdaten, wie unten, um zu versuchen:

@ContextConfiguration(classes = TestConfiguration.class) 
public class TestNgDataProvider extends AbstractTestNGSpringContextTests { 
    private static final Logger LOGGER = LoggerFactory.getLogger(TestNgDataProvider.class); 

    @DataProvider(name = "invoices") 
    public static Object[][] dataProviderMethod() { 
     return new Object[][]{ 
       {"201628JP00006097", "201628JP00006098"}, 
     }; 
    } 

    @Test(dataProvider = "invoices") 
    public void testParameterMethod(String invoiceId1, String invoiceId2) { 
     LOGGER.info("Start test"); 
     LOGGER.info("Test data is: {}, {}", invoiceId1, invoiceId2); 

    } 
} 

aber jetzt, wenn ich versuche, diesen Anbieter zu verwenden, in meiner Test-Klasse bekomme ich ein exception sagen: java.lang.Exception: Keine runnable Methoden

Meine Testklasse verwendet runWith SpringJUnit4ClassRunner. Jeder weiß, wie man dieses Problem löst.

import org.junit.After; 
import org.junit.Before; 
import org.junit.runner.RunWith; 
import org.springframework.boot.test.SpringApplicationConfiguration; 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 
import org.testng.annotations.Test; 

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(TestConfiguration.class) 
public class TestLax extends LaxBaseTest { 
    @Test (dataProvider="invoices", dataProviderClass=TestNgDataProvider.class) 
    public void testLarsTamara(String invoiceId1, String invoiceId2) throws Exception { 
     LOGGER.info("Test data is: {}, {}", invoiceId1, invoiceId2); 

     File file = larsRemote.runLars(); 
     readAndVerifyLarsFile(file); 
    } 
} 

Antwort

0

Natürlich können Sie nicht!

JUnit kann TestNG-Tests oder -Features nicht ausführen. Im Gegensatz dazu kann TestNG Junit-Tests durchführen.

Führen Sie einfach Ihre Tests mit dem Testweg und es sollte funktionieren.