2013-09-10 2 views
2

У нас недавно была ошибка, вызванная некоторым кодом, предполагающим, что ресурс classpath можно открыть, как если бы это был обычный файл. Этот код был охвачен модульными тестами, которые прошли, поскольку это предположение происходит как в Maven, так и в Eclipse. Но в производстве этот код находился в JAR в WAR WAR службы и, очевидно, не работал.Как я могу запускать модульные тесты с Maven, как если бы они были в JAR?

Мы исправили ошибку, но я не совсем удовлетворен, потому что я не вижу, как убедиться, что это не повторится.

ответ

3

Эксплуатационные испытания проводятся с использованием Surefire. Это происходит во время mvn test, и перед упаковкой возникает «тест». Но если вы хотите запускать тесты после mvn package, вы должны использовать Failsafe.

Вот некоторые very relevant documentation о настройке пути к классам. По умолчанию он отправит ${project.build.outputDirectory} в путь к классам, но вы должны быть в состоянии предотвратить это, установив classesDirectory в другой каталог. Затем вы можете добавить свою собственную банку либо в additionalClasspathElements, либо, возможно, в dependenciesToScan

+1

Failsafe по-прежнему использует путь к классам './Target/classes', а не только сгенерированный jar: [link] (http: //maven.apache .org/surefire/maven-failafe-plugin/examples/configuration-classpath.html) – yshavit

+0

@yshavit см. мое редактирование. Это может исправить эту проблему. –

+0

Немного взломанный, но я думаю, что это сработает, и я не могу придумать лучшего варианта. – yshavit

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