私は、すべてが 1 つの抽象基本クラスから拡張されたテスト クラスのみで構成されるプロジェクトを持っています。テストは intellij で正常に実行され、正しいプロファイルを指定して mvn clean install を実行すると実行されます。
私がやりたいことは、テスト jar を作成し、コマンドラインからテストを実行することです。そのため、これらのコマンドを使用しています。
mvn -DoutputDirectory=target -f pom.xml dependency:copy-dependencies
この最初のコマンドは、すべての依存関係を取得し、ターゲット フォルダーに作成されたテスト jar と一緒に配置します。
java -cp .;target/* org.testng.TestNG -testjar target/my-test-jar.jar -xmlpathinjar sanity.xml
私はこれを得る:
[TestNG] [ERROR]
Cannot instantiate class com.myPackage.MyTestClass
クラスは間違いなくそこにあり、intellij 内から sanity.xml を実行できます。
最も奇妙な点は、プロジェクトから Java ファイルを削除して、これを配置できることです。
public static void main(String[] args){
args = new String[4]
args[0] = "-testjar"
args[1] = "target/my-test-jar.jar"
args[2] = "-xmlpathinjar"
args[3] = "sanity.xml"
org.testng.TestNG.main(args)
}
私のプロジェクトの別の Test クラス内で、jar ファイル内から MyTestClass をインスタンス化することができます。
誰にもこれについて何か考えがありますか?クラスをインスタンス化できないという単純な事実だけで、スタック トレースやログ ファイルは取得されません。誰かが以前にこれに遭遇し、それを解決する方法を知っていることを願っています。
乾杯、デビッド
[編集 - pom ファイルの一部を追加]
<profiles>
<profile>
<id>buildOnly</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/test/groovy</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/test/resources</directory>
<targetPath>resources</targetPath>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.4</version>
<extensions>true</extensions>
<configuration>
<source>1.6</source>
<providerSelection>1.8</providerSelection>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.gmaven.runtime</groupId>
<artifactId>gmaven-runtime-1.8</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<providerSelection>1.8</providerSelection>
<sources>
<fileset>
<directory>${pom.basedir}/src/test/groovy</directory>
<includes>
<include>**/*.groovy</include>
</includes>
</fileset>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>integrationTest</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/test/groovy</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/test/resources</directory>
<targetPath>resources</targetPath>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.4</version>
<extensions>true</extensions>
<configuration>
<source>1.6</source>
<providerSelection>1.8</providerSelection>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.gmaven.runtime</groupId>
<artifactId>gmaven-runtime-1.8</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<providerSelection>1.8</providerSelection>
<sources>
<fileset>
<directory>${pom.basedir}/src/test/groovy</directory>
<includes>
<include>**/*.groovy</include>
</includes>
</fileset>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<suiteXmlFiles>
<suiteXmlFile>${testng.xml.file}</suiteXmlFile>
</suiteXmlFiles>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.testng.reporters.TestHTMLReporter,org.testng.reporters.JUnitXMLReporter,org.testng.reporters.SuiteHTMLReporter,org.testng.reporters.FailedReporter,org.testng.reporters.EmailableReporter,org.testng.reporters.JUnitReportReporter</value>
</property>
</properties>
<systemProperties>
<property>
<name>isCI</name>
<value>${isCI}</value>
</property>
<property>
<name>browser</name>
<value>${browser}</value>
</property>
<property>
<name>remote</name>
<value>${remote}</value>
</property>
<property>
<name>port</name>
<value>${port}</value>
</property>
<property>
<name>environment</name>
<value>${environment}</value>
</property>
<property>
<name>subDomain</name>
<value>${subDomain}</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>