別のテスト中に生成されたJavaコードのテスト
-
18-09-2019 - |
質問
必要なJavaソースコードを生成してそのモデルを生成する「Tojavacode()」を自分のモデルに作成したい(理由を気にしないでください、または行うべきではない場合、または互換性の問題が発生する可能性がある場合)。
私はこれをテストする方法に迷っています。私はMavenを使用していますが、私のサーバーは適切なバルクテストのためにアップする必要があるため、生成されたソースは実際には機能しません。 「テスト」の目標中にサーバーを上げますが、生成ソースは早すぎます。
一方、組み込みのコンパイラ(JDKのTools.jarから)を使用してこれを行うことができますが、テスト(またはその瓶をロードする)のために瓶に詰める方法がわかりません。
何か案は?
解決
使用できます Javacompiler API ソースファイルをコンパイルしてセットアップするには クラスローダー テストにコンパイルされたクラスをロードする(サンプルコード)。 tools.jarはクラスパスにいる必要があります。これは、JDKを使用する場合です。
生成されたコードが特定のクラスに安定している場合は、使用できます 注釈プロセッサ ソースコードを生成し、注釈付きクラスと同じJavac実行でコンパイルします。
他のヒント
ANTタスクをMavenに追加できます。それは、Mavenビルド中の「古典的な注文外」への方法です。 Mavensのテスト目標などにJavac Antタスクを追加するようなものです。
(申し訳ありませんが、私はあなたのコメンターのマットBと同じくらい混乱しています - しかし、埋め込まれたアリのタスクはあなたのスイスアーミーナイフです。)
所属していません StackOverflow