1

私は、すべてが 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>
4

2 に答える 2

0

メッセージには、「見つかりません」ではなく、「インスタンス化できません」と表示されます。

TestNGはクラスを見つけることはできますが、インスタンス化することはできません。質問で最初に提供する情報はのソースになりますがMyTestClass、それがなくても、単純なパラメーターなしのコンストラクターを定義しなかったと思います。

public MyTestClass() {}
于 2012-11-15T17:05:46.910 に答える
0

テストがsrc/test/javaに正しく配置され、単体テストの命名規則に基づいて正しく名前が付けられている場合、テストはコマンドラインから簡単に実行できます

mvn test

しかし、テストの名前が異なるようで、問題が発生します。

于 2012-11-15T14:18:16.030 に答える