2013-08-25 3 views
0

Я новичок в JUnit, но это то, что я пытаюсь сделать:Как получить пробную версию выполнения теста из тестового набора JUnit?

  • генерировать данные с моим классом DataGenerator;
  • экземпляр тестового класса MyTestClass
  • пропуск MyTestClass тестовые данные генерируются данные (первый шаг)
  • запустить тест
  • собирать TestResult результат

С выше, все работает, но я не может видеть время информация (время, необходимое для завершения теста) на TestResult объект. Что-то здесь не так?

Приведенный выше подход заключается в том, что мне нужно запустить это на других тестовых классах с использованием тех же данных.

DataGenerator testData = new DataGenerator(); 
    MyTestClass myTestClass = new MyTestClass("mytestmethod"); 
    myTestClass.setBaseLine(testData); 
    try { 
     TestResult testResult = myTestClass.run(); 
     System.out.println(testResult.wasSuccessful()); 
    } catch (Throwable ex) { 
     Logger.getLogger(TestSupervisor.class.getName()).log(Level.SEVERE, null, ex); 
    } 
+0

Что вы подразумеваете под информацией о времени? вы имеете в виду, сколько времени прошло испытание? – dkatzel

+0

есть. Я редактирую вопрос, чтобы дополнить это. Thks – gextra

ответ

0

JUnit 4 имеет аннулирование таймаута, которое не пройдет тест, если тест слишком длинный.

//this test will fail if it takes longer than 1 sec 
@Test(timeout = 1000) 
public void myTest(){ 
    ... 
} 

Я думаю, что вы можете обойти проблему DataGenerator, используя лучшую TestFixture.

Если все ваши тесты, использующие DataGenerator, находятся в одном классе тестов, вы можете использовать аннотации @BeforeClass и @AfterClass, чтобы настроить и снести данные, используемые в тестах. (эти методы с этими аннотациями вызываются только один раз до/после выполнения всех тестов).

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