2016-02-18 1 views
1

У меня есть куча зависимых тестовых примеров (не зависит от параметра dependOn) и не может запускать один тест за раз. Вот почему я хочу запускать тесты, пока не будет достигнут конкретный тест. Я хочу прекратить выполнение дальнейших тестов и вызывать разрывы.Как выполнить тесты junit только до тех пор, пока не будет достигнут конкретный тест

Есть ли способ, которым я могу это сделать?

+1

Возможный дубликат [Как запустить методы испытаний в определенном порядке в JUnit4?] (Http://stackoverflow.com/questions/3693626/how-to-run-test-methods -in-specific-order-in-junit4) –

+1

Один из возможных способов, я могу подумать, создать набор тестов и включить только тест вашей цели. Таким образом, он выполняет все предыдущие зависимые тесты и также останавливает выполнение, когда цель попадает –

+0

Я думаю, что настоящая проблема здесь является проблемой. Почему ваши тесты так зависят? Если они настолько зависимы, почему вы их внедряете в Junit в качестве отдельных методов тестирования? –

ответ

2

Вы можете контролировать выполнение тестового примера org.junit.Assume.assumeTrue (условие), который игнорирует тестовые случаи, если он считает условие ложным. Задает условие истинным в начале, частная статическая логическая переменная может быть пользователем, например, и устанавливает условие false в конце последнего тестового примера, который вы хотите выполнить. Проверяет условие в @BeforeTest.

Пример кода

private static boolean runTest = true; 

@org.junit.Before 
public void before() throws Exception { 
    org.junit.Assume.assumeTrue(runTest); 
} 

@org.junit.Test 
public void test1() throws Exception { 
    // will be executed 
} 

@org.junit.Test 
public void test2() throws Exception { 
    // will be executed 
} 

@org.junit.Test 
public void test3() throws Exception { 
    // will be executed 
    runTest = false; 
    // no test after this will be executed 
} 

@org.junit.Test 
public void test4() throws Exception { 

    // will be ignored 

} 
+0

Это помогло! Благодаря! –

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