2016-07-29 1 views
0

Я выполняю тестирование Junit в Spring и в своем тестовом классе мне нужно использовать некоторые тестовые данные.Могу ли я использовать TestNG DataProvider в контексте Spring, то есть в моем тестовом коде, который запускается с помощью SpringJUnit4ClassRunner

Я искал Google и Есть много способов, как - 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: нет Runnable методы

Мой тестовый класс использует 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, и он должен работать.

Смежные вопросы