私は注釈プロセッサーlibraryを持っていますが、私はKotlinで働きたいと思っています。誰かが私に助言を与えることができたら本当に感謝します。Java注釈プロセッサ - 注釈付きKotlinクラス単位テスト
私の現在の単体テスト実装は、Googleのcompile-testingライブラリを使用しています。私は入力と出力のクラスを作成し、それらをresourcesディレクトリに格納します。その後、単体テスト中、コンパイルテストライブラリは入力Javaクラスをコンパイルし、注釈プロセッサを実行し、生成されたクラスをリソースディレクトリの期待される出力クラスと比較します。これは、すべて私の現在のJavaベースのユニットテストのための偉大な作業をされて Unit test class Resources (Input and expected output classes
:ここ
は、私が言及しています何の(私のプロジェクトから)の例です。しかし、私がKotlinクラスを使っていくつかのテストを書くと、私のテストはクラスをロードできません。
私は次の問題を得る現時点で
(私は自分のプロジェクトでKotlinの一切の言及が表示されない)、これはコンパイルテストライブラリは、何よりもまず、Java固有のライブラリであることが原因であると考えています。
java.lang.IllegalArgumentException: Compilation unit is not of SOURCE kind: "/C:/dev/gsonpath/gsonpath-compiler/build/resources/test/adapter/auto/field_types/primitives/valid/TestValidPrimitives.kt"
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:137)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:107)
at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:64)
at com.google.testing.compile.Compilation.compile(Compilation.java:69)
at com.google.testing.compile.JavaSourcesSubject$CompilationClause.compilesWithoutError(JavaSourcesSubject.java:281)
不適切なコンパイラが使用されていることは明らかです。ファイル拡張子が '.java'でない場合、例外自体がスローされます。私が '.java'ファイル拡張子を持つKotlinクラスを読み込もうとすると、正しいJava構文ではないので動作しません。
誰もが以前にこの問題に遭遇して解決しましたか?私は他のいくつかの注釈プロセッサ(例えばDBFlow)を見てきましたが、この方法でユニットテストを書いていません。
最近、Kotlinは注釈処理に挑戦しているだけなので、おそらく私はこの問題を最初に持っていますか?