2016-07-29 9 views
0

我正在做一些Junit測試Spring並且在我的測試類中我必須使用一些測試數據。我可以在Spring上下文中使用TestNG DataProvider,即在我的測試代碼中運行SpringJUnit4ClassRunner

我搜索谷歌和方法有很多像 - Parameterized類,TestNG的Data提供商,[junit-dataprovider][1]

我雖然儘量TestNG的數據提供者,並創建了一個簡單的類爲我的測試數據如下:

@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); 

    } 
} 

但是現在,當我試圖在我的測試類使用此提供我得到一個exception說: java.lang.Exception的:沒有可運行的方法

我的測試班正在使用runWith SpringJUnit4ClassRunner。任何人都知道如何解決這個問題。

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

回答

0

當然你不能!

JUnit無法運行TestNG測試或功能。但是相反,TestNG能夠運行junit測試。

用testng的方式運行你的測試,它應該工作。

相關問題