2013-10-08 3 views
0

Как бы я мог maven игнорировать конкретные тестовые примеры на основе переменной или профиля сборки?Игнорировать тестовые примеры на основе среды

У меня есть несколько тестовых примеров, связанных с подключением к LDAP-серверу. Как я могу заставить эти тестовые примеры игнорировать, если я создаю конкретный профиль или переменную maven, передаваемую в команду? Я не хочу игнорировать все тестовые примеры.

+1

Было бы разумно, если бы вы разделили тесты по линиям тестов интеграции или интеграции? Или у вас есть другие интеграционные тесты, которые не требуют LDAP и потенциально могут запускаться? –

+0

Я могу разделить тесты, вы намекаете на разделение на тестовый набор? Я также ищу способ заставить maven принять какой-то ввод, чтобы сказать «я могу запустить тесты здесь» или что я не могу – monksy

ответ

1

Ваше решение выглядит как две части: (1) информирование процесса через Maven о том, что он работает в данной конфигурации, и (2) выполнение теста условно на основе этой конфигурации.

Первый бит легко: с помощью переключателя -D передать в собственность системы, как и в this SO answer, признавая, что вам нужно передать свойство системы в качестве аргумента в свойства системы с помощью surefire argLine property:

mvn -DargLine="-DldapTests=disable" test 

Для второго вы можете использовать новый assumeTrue и соответствующий API допущений в JUnit, как в this other SO answer.

@Before 
public void checkLdapTests() { 
    assumeThat(System.getProperty("ldapTests"), is(not(equalTo("disable")))); 
} 
+0

Thats именно то, что я искал! – monksy

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