2016-12-28 3 views
0

実行時にtestng xmlを作成するメインクラスを使用しています。メインクラスは、excel(yes/no)で設定されたフラグに基づいて(testng xmlから)実行するテストメソッドを作成します。 メインクラスを実行する場合、testng xmlが正しく作成されています。しかし、もし私がpom xmlを使ってmaven build(test)と同じことをするのであれば、私のメインクラスは考慮されず、testng xmlにあるテストの実行を開始します。以下は私のポンxmlです。pom.xmlでtestng xmlを生成するメインクラスを認識する

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>CSGAPITestAutomation</groupId> 
    <artifactId>CSGAPITestAutomation</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
       <!-- Necessary for jenkins to actually run our tests --> 

      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.4.0</version> 
       <executions> 
        <execution> 
        <goals> 
         <goal>java</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <mainClass>RegressionTest.GenerateTestNG</mainClass> ---> Main class file 
       </configuration> 
       </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.19.1</version> 
     <configuration> 
     <!-- <argLine>-noverify</argLine> --> 
      <useSystemClassLoader>false</useSystemClassLoader> 
      <forkMode>never</forkMode> 
      <compilerArgument>-proc:none</compilerArgument> 
      <fork>true</fork> 

     <suiteXmlFiles>         

      <suiteXmlFile>.//Automation_TestNgSuites//GenerateXML.xml</suiteXmlFile> 
      </suiteXmlFiles> 


     </configuration> 
     </plugin> 

     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>com.relevantcodes</groupId> 
      <artifactId>extentreports</artifactId> 
      <version>2.40.2</version> 
     </dependency>  
     <dependency> 
      <groupId>io.appium</groupId> 
      <artifactId>java-client</artifactId> 
      <version>3.3.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>6.8.8</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sourceforge.jexcelapi</groupId> 
      <artifactId>jxl</artifactId> 
      <version>2.6.12</version> 
     </dependency> 
     <dependency> 
      <groupId>com.jayway.restassured</groupId> 
      <artifactId>rest-assured</artifactId> 
      <version>2.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.jayway.jsonpath</groupId> 
      <artifactId>json-path</artifactId> 
      <version>2.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.pojosontheweb</groupId> 
      <artifactId>monte-repack</artifactId> 
      <version>1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.13</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>3.13</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jdom</groupId> 
      <artifactId>jdom2</artifactId> 
      <version>2.0.5</version> 
     </dependency> 
     <dependency> 
      <groupId>jaxen</groupId> 
      <artifactId>jaxen</artifactId> 
      <version>1.1.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.21</version> 
     </dependency> 

     <!-- http://mvnrepository.com/artifact/com.jayway.restassured/json-schema-validator --> 
     <dependency> 
      <groupId>com.jayway.restassured</groupId> 
      <artifactId>json-schema-validator</artifactId> 
      <version>2.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-server</artifactId> 
      <version>2.53.0</version> 
     </dependency> 
     <dependency> 
      <groupId>net.lightbody.bmp</groupId> 
      <artifactId>browsermob-core-littleproxy</artifactId> 
      <version>2.1.0-beta-3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.json-simple</groupId> 
      <artifactId>json-simple</artifactId> 
      <version>1.1.1</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

これは奇妙なアプローチです。一連のテストを実行してファイルとプロセスからxmlテスト設定/データを読み込む標準のju​​nitテストメソッドを記述することをお勧めします。 –

答えて

0

は、私はこの問題は、確実なプラグインがあなたのスーパーポンポンの一部(hereを参照)であるMavenの事実によるものであると思います。デフォルトでは、シュアプラグインが

<includes> 
    <include>**/Test*.java</include> 
    <include>**/*Test.java</include> 
    <include>**/*TestCase.java</include> 
</includes> 

hereを参照)、それがテストメソッドを持つクラスを見つけやすくするために有効に以下のフィルターを持っている私は、あなたがその名であるTestで終わる1つ以上のJavaクラスを持っていることを推測していますなぜ確実にプラグインが基本的にそれらを実行しているのでしょうか? は、surefireプラグインのexcludesFile属性を利用し、Javaクラスの実行を除外することをお勧めします。詳細はhereを参照してください。

関連する問題