0

ここがバックグラウンドです。

私はantビルドを使用していたプロジェクトに取り組んでいました。新しいクラスを作成するために使用するときは、ant がサポートしているのと同じクラスで junit テストを記述します。クラス名には「テスト」命名規則がありません。800 以上の Junit テストがあります。

ここで、Maven ビルド構造に移動する必要があります。問題は、maven が、クラス名の命名規則が「Test」である junit のみを実行することです。

src/main/java/* にある junit テストを実行するにはどうすればよいですか?

また、「@Test」アノテーションを持つすべてのメソッドをプルできる方法はありますか?

さらに情報が必要な場合はお知らせください。

4

4 に答える 4

2

Ant でそのように使用していたからといって、現在も使用し続けるのは適切ではありません。Maven に移行したので、Maven のやり方に従い、その規則に従う必要があります。そのうちの 1 つは、本番コードをテストから分離しておくことです。実際には、(コードのクライアントにとって) 役に立たないメソッドをコードに散らかしているので、混合は意味がありません。これを続けて回避策を見つけることはできますが、これは高水準の方法ではありません。

次のステップとして実際に行う必要があるのは、リファクタリングの時間をスケジュールし、次のタスクを実行することです。

  • 作成しますsrc/test/java(およびそれぞれ -- src/test/resources)。

  • アノテーション付きメソッド*Testを含むクラスごとにクラスを作成し、 の下に配置します。@Testsrc/test/java

  • これらのメソッドをそれぞれの新しいクラスに移動します。

  • テストでのみ使用されるすべてのリソースをsrc/test/resourcesディレクトリに移動します。

于 2013-10-29T10:39:02.383 に答える
1

テストを実行するSurefire プラグインの構成を変更する必要があります。テストはしていませんが、次の構成を試すことができます。

<build>
  <testSourceDirectory>src/main/java</testSourceDirectory>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.16</version>
      <configuration>
        <includes>
          <include>**/*.java</include>
        </includes>
      </configuration>
    </plugin>
  </plugins>
</build>
于 2013-10-28T21:05:48.943 に答える
0

あなたは ant を使用しているので、テスト スイートを持っていると思いますか? その場合、最も簡単な方法は、指定されたテスト スイートを使用するように構成を変更することです。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.12.4</version>
  <configuration>
    <includes>
      <include>AllTest.class</include>
    </includes>
  </configuration>
  </plugin>

ただし、src フォルダーも検索されるかどうかはわからないため、テスト スイートを test ディレクトリに移動する必要がある場合があります。

@Test アノテーションを持つすべてのメソッドをプルする場合 (スイートがないと思いますか?)、確実なテスト クラスの命名規則に従っていない場合は、自分で行う必要があります。クラス パスまたはサブフォルダー内のすべてのクラスを検索し、基準を満たすすべてのクラスを見つけてそれを Junit に渡して実行する、独自のテスト ランナー実装を作成することはそれほど難しくありません。

于 2013-10-28T18:02:12.727 に答える
0

Eclipse を使用している場合でも、JUnit テストとして実行できます。

実際、「テスト クラス」が test フォルダーに配置されていない場合は、maven ビルド アクションでそれらを「テスト」として実行するつもりがないことを意味します。

于 2016-08-27T15:59:32.530 に答える