2011-12-08 6 views
1

既存のJava RESTサーバのユニットテストを書く必要があります。Maven:ユニットテストを生成するユーティリティ

GETメソッドは非常に似ています。私は、GETメソッドとそれが(定型化された)ユニットテストを生成するために消費するPOJOをイントロスペクションするためにリフレクションを使用する小さなユニットテストジェネレータを記述できると考えています。

各テストは小さな構文エラーで生成されるため、そのまま実行することはできませんが、開発者が検討して構文エラーを修正する必要があります。私はこれがテストが正気であり、合理的に見えることを少なくとも保証することを望んでいる。

発電機は私が発電のためのクラスファイルはなりたくない

など、ユニットテスト用の出力ディレクトリ、クラス被試験に合格、コマンドラインから実行されますWARファイルに追加されますが、ジェネレータはRESTサーバーのクラスファイルにアクセスする必要があります。プロジェクト/ srcに/メイン/ javaの、プロジェクト/ターゲットなど

ジェネレータのソースコードを配置するのに最適な場所は次のとおりです。

マイプロジェクトディレクトリは、「標準」のMaven階層ですか?プロジェクト/ src/main/java?プロジェクト/ src/generator/java?どこか別の場所?

生成されたクラスファイルがすべて特定のパッケージ(com.example.unit_test_generatorなど)に含まれている場合、そのファイルをWARファイルから除外する方法を知っています。

答えて

1

このシナリオは、私にとってはmaven-pluginのようなものです。さらに、生成されるコードの通常の場所はtarget/generated ...の下にあります。これはターゲットフォルダを意味します... maven-antlr3-pluginまたはmaven-jaxb-pluginを見て、通常は生成されたコードをどこに置くかを見てください。生成されたコードをsrc /構造体に置かないでください...しかし、場所を変更してproject/src/main /に置く必要があるかもしれません。しかし、これらのクラスが何らかのテストの場合、プロジェクト/ src/testを実行します。

+0

"生成されたコードをsrc /構造体に入れない" - これは実際には擬似生成されたソースコードです。これは、各ビルドで再生成されることを意味するのではなく、新しいGETリソースが作成されたときに1回だけ作成されます。そのため、私はジェネレータを実行するためにコマンドラインを使用しています。 – Ralph

+0

ああああ...別の話。説明ありがとう。 – khmarbaise