2016-07-29 5 views
0

JunitのテストはSpringで行い、テストクラスではテストデータを使用する必要があります。Spring Contextで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でテストを実行すればうまくいくはずです。

関連する問題