Игнорировать модуль во время тестовой сборки maven для многокомпонентного проекта maven - PullRequest
7 голосов
/ 14 февраля 2012

Можно ли запустить тестовую сборку maven (mvn clean test) в многомодульном проекте maven и пропустить / проигнорировать тест конкретного модуля?как -Dmaven.test.skip=true но для конкретного модуля, а не для всех модулей?Я не хочу менять безошибочный <configuration> для включения <skipTests>true</skipTests> для модуля, который я хочу пропустить для тестов.Я хотел знать, можно ли это сделать из командной строки.Мне это нужно, потому что в моем проекте у меня много модулей, и один или два из них требуют очень много времени для выполнения теста, поэтому, когда я хочу протестировать только пару модулей, я бы хотел пропустить это время, принимая модули, к которым у меня нетвнесены какие-либо изменения.

Ответы [ 2 ]

5 голосов
/ 14 февраля 2012

Действительно ли для вас проблема изменить конфигурацию подключаемого модуля surefire?Потому что вы можете изменить его один раз только в своем модуле ...

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
            <configuration>
                <skipTests>${skip.foo.module.tests}</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>

... и делегировать значение true / false тега skipTests свойству maven, активируемому специальным профилем:

<properties>
    <skip.foo.module.tests>false</skip.foo.module.tests>
</properties>

<profiles>
    <profile>
        <id>SKIP_FOO_MODULE_TESTS</id>
        <properties>
            <skip.foo.module.tests>true</skip.foo.module.tests>
        </properties>
    </profile>
</profiles>

Чтобы вы могли деактивировать тесты в модуле Foo из командной строки:

mvn clean test -P SKIP_FOO_MODULE_TESTS

0 голосов
/ 14 февраля 2012

Это можно сделать с помощью профиля, который пропустил настройку верной настройки.Это позволит вам поддерживать тест большую часть времени, но когда вы захотите пропустить тесты для одного из модулей, вы можете вызвать этот профиль.Затем вы можете исключить все тесты, используя тесты с пропуском, или вы можете использовать опцию exclude, чтобы исключить только один или два теста, которые долго выполняются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...