Плагины Maven через профиль не выполняются в указанной фазе - PullRequest
0 голосов
/ 03 июля 2018

Мое требование выполнить файл testng.xml для запуска сценариев автоматизации и отправки почты после завершения выполнения. Я определю, какие тесты нужно запускать из файла testng.xml.

Поэтому я решил использовать концепцию профилей maven для запуска файла testng.xml и для отправки отчетов о выполнении, как показано ниже. Когда я запускаю команду, используя «mvn test -P Code_Compile, Run_Tests, Mail_Reports», профили, указанные ниже, не выполняются. Пожалуйста, дайте мне знать, что мне здесь не хватает.

<profiles>  
    <profile>
        <id>Code_Compile</id>
            <build>
                  <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.7.0</version>                        
                        <executions>
                            <execution>
                                <id>codecompile</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>testCompile</goal>
                                </goals>
                                <configuration>
                                  <source>1.8</source>
                                  <target>1.8</target>
                                </configuration>
                            </execution>
                        </executions>                       
                  </plugin>                           
                </plugins>
            </build>
        </profile>


    <profile>
    <id>Run_Tests</id>
        <build>
              <plugins>                   
                  <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.22.0</version>
                        <executions>
                            <execution>
                                <id>runtests</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                                <configuration>
                                <testFailureIgnore>true</testFailureIgnore>
                                  <suiteXmlFiles>
                                    <suiteXmlFile>testng.xml</suiteXmlFile>
                                  </suiteXmlFiles>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>                         
            </plugins>
        </build>
    </profile>

    <profile>
        <id>Mail_Reports</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>ch.fortysix</groupId>
                    <artifactId>maven-postman-plugin</artifactId>
                    <version>0.1.6</version>
                    <executions>
                        <execution>
                            <id>send a mail</id>
                            <phase>test</phase>
                            <goals>
                                <goal>send-mail</goal>
                            </goals>
                            <inherited>false</inherited>
                            <configuration>
                                <from>xx@gmail.com</from>
                                <subject>Latest Automation Report...</subject>
                                <failonerror>true</failonerror>
                                <mailhost>smtp.gmail.com</mailhost>
                                <mailport>465</mailport>
                                <mailssl>true</mailssl>
                                <mailAltConfig>true</mailAltConfig>
                                <mailuser>xx@gmail.com</mailuser>
                                <mailpassword>xxxxx</mailpassword>
                                <htmlMessage><![CDATA[<p>Hi, Please find enclosed latest Automation reports.</p>]]></htmlMessage>
                                <receivers>
                                    <receiver>xxxx@gmail.com</receiver>
                                </receivers>
                                <fileSets>
                                    <fileSet>
                                        <directory>${basedir}/TestReports</directory>
                                        <includes>
                                            <include>LatestAutomationReport.zip</include>
                                        </includes>
                                    </fileSet>
                                </fileSets>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
    </profiles>

Я попытался включить только плагины внутри тега сборки вместо профилей, установив фазу как «тест» для каждого плагина, как показано ниже, и попытался запустить команду «mvn test». Как вы можете видеть ниже, я включил проверить в каждом плагине. Эта попытка также не выбрал выполнение плагинов. Пожалуйста, помогите мне решить эту проблему с помощью профилей или плагинов.

<build>
<plugins>  
      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>                        
            <executions>
                <execution>
                    <id>codecompile</id>
                    <phase>test</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                    <configuration>
                      <source>1.8</source>
                      <target>1.8</target>
                    </configuration>
                </execution>
            </executions>                       
      </plugin>

      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
            <executions>
                <execution>
                    <id>runtests</id>
                    <phase>test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                    <testFailureIgnore>true</testFailureIgnore>
                      <suiteXmlFiles>
                        <suiteXmlFile>testng.xml</suiteXmlFile>
                      </suiteXmlFiles>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>ch.fortysix</groupId>
            <artifactId>maven-postman-plugin</artifactId>
            <version>0.1.6</version>
            <executions>
                <execution>
                    <id>send a mail</id>
                    <phase>test</phase>
                    <goals>
                        <goal>send-mail</goal>
                    </goals>
                    <inherited>false</inherited>
                    <configuration>
                        <from>vikascool4@gmail.com</from>
                        <subject>Latest Automation Report...</subject>
                        <failonerror>true</failonerror>
                        <mailhost>smtp.gmail.com</mailhost>
                        <mailport>465</mailport>
                        <mailssl>true</mailssl>
                        <mailAltConfig>true</mailAltConfig>
                        <mailuser>vikascool4@gmail.com</mailuser>
                        <mailpassword>vikaschinna</mailpassword>
                        <htmlMessage><![CDATA[<p>Hi, Please find enclosed latest Automation reports.</p>]]></htmlMessage>
                        <receivers>
                            <receiver>vikas.voladri@gmail.com</receiver>
                        </receivers>
                        <fileSets>
                            <fileSet>
                                <directory>${basedir}/TestReports</directory>
                                <includes>
                                    <include>LatestAutomationReport.zip</include>
                                </includes>
                            </fileSet>
                        </fileSets>
                    </configuration>
                </execution>
            </executions>
        </plugin>  
</plugins>

1 Ответ

0 голосов
/ 03 июля 2018

Если вы запустите mvn fr.jcgay.maven.plugins:buildplan-maven-plugin:1.3:list -P Code_Compile,Run_Tests,Mail_Reports, это выведет плагины, которые выполняет maven, и их идентификаторы выполнения. Из выходных данных команды вы можете увидеть, что ваши выполнения, вероятно, не перекрывают выполнение по умолчанию (так как у них разные идентификаторы).

Вместо определения профиля Code_Compile используйте свойства по умолчанию, определенные здесь: https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

Также, если вы хотите использовать определенную версию компилятора, используйте pluginManagement, чтобы определить это.

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