Запуск испытаний после упаковки - PullRequest
4 голосов
/ 03 мая 2011

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

Какмне сделать это с Maven 2?

Ответы [ 2 ]

5 голосов
/ 03 мая 2011

Вы можете использовать для этого плагин surefire. что вам нужно сделать, это связать фазу с исполнением (см. ниже). Вам нужно будет изменить фазу, чтобы она была такой, какой вы хотите, чтобы она была в вашем случае одна после фазы пакета.

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
            <executions>
                <execution>
                    <id>unittests</id>
                    <phase>test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <skip>false</skip>
                        <includes>
                            <include>**/**/**/*Test.java</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
3 голосов
/ 03 мая 2011

Преобразуйте ваш проект в многомодульную сборку . В первом модуле постройте свой оригинальный проект. Во втором модуле добавьте зависимость к первому.

Это добавит первый JAR к пути к классам.


Обновление по OP: это работает, но мне пришлось добавить это к моему POM:

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${version.maven-surefire-plugin}</version>
            <configuration>
                <useSystemClassLoader>false</useSystemClassLoader>
            </configuration>
        </plugin>

Важная часть <useSystemClassLoader>false</useSystemClassLoader>. Без этого мой classpath содержал только пару виртуальных JAR-файлов плюс верный JAR-загрузчик (который содержит тестовый classpath в MANIFEST.MF). Я понятия не имею, почему этот тестовый путь к классам не виден из загруженных из него классов.

...