2016-12-27 5 views
1

Я организую несколько тестов в наборах, что отлично, но мне нужно проигнорировать тесты, которые являются частью набора, так что моя сборка не запускает их автоматически.JUnit - Игнорировать тест, когда часть Suite

Я могу добиться этого, исключив их из процесса сборки, но хотел посмотреть, поддерживает ли JUnit это изначально.

Каков самый чистый способ достичь этого?

EDIT: Для достижения этого в конструкции maven я могу классифицировать тесты (https://stackoverflow.com/a/14133020/819606) и исключать целую категорию (https://stackoverflow.com/a/18678108/819606).

+0

Я не знаю о простой встроенный способ для достижения этой цели. – GhostCat

ответ

0

Junit4 - Вы можете попробовать использовать

@Ignore 
public class IgnoreMe { 
      @Test public void test1() { ... } 
      @Test public void test2() { ... } 
} 

превращается в нечто вроде -

import org.junit.runner.RunWith; 
import org.junit.runners.Suite; 

@RunWith(Suite.class) 
@SuiteClasses({IgnoreMe.class, AnotherIgnored.class}) 
@Ignore 
public class MyTestSuiteClass { 
.... 
// include BeforeClass, AfterClass etc here 
} 

Источник - Ignore in Junit4


Junit5 - Вы можете попробовать что-то подобное, как -

import org.junit.jupiter.api.Disabled; 
import org.junit.jupiter.api.Test; 

@Disabled 
class DisabledClassDemo { 
    @Test 
    void testWillBeSkipped() { 
    } 
} 

Источник - Disabling Tests in Junit5

наряду с реализацией люкс в Junit5 в

Если у вас есть несколько тестовых классов вы можете создать тестовый набор как может видно в следующем примере.

import org.junit.platform.runner.JUnitPlatform; 
import org.junit.platform.runner.SelectPackages; 
import org.junit.runner.RunWith; 

@RunWith(JUnitPlatform.class) 
@SelectPackages("example") 
@Disabled 
public class JUnit4SuiteDemo { 
} 

JUnit4SuiteDemo будет обнаружить и запустить все тесты в пакете пример и его подпакетов. По умолчанию он будет включать в себя только те тесты , чьи имена соответствуют шаблону ^. * Tests? $.

где @SelectPackages указывает имена пакетов для выбора при запуске тестов с помощью @RunWith(JUnitPlatform.class), так что вы можете указать те, которые вы хотите выполнить или те, которые вы не хотите, чтобы выполнить и пометить их запрещенными, как указано выше.

Далее читает - @Select in Junit5 и Running a Test Suite in Junit5

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