나는 단위 테스트의 측면에서 걸림돌을 맞았지만 주석 처리기 library을 가지고 Kotlin에서 일하고 싶습니다. 누군가가 조언을 해줄 수 있다면 정말 고마워.자바 주석 프로세서 - Annotated Kotlin 클래스 단위 테스트
내 현재 단위 테스트 구현은 Google의 compile-testing 라이브러리를 사용합니다. 필자는 입력 및 출력 클래스를 만들고이를 resources 디렉토리에 저장합니다. 그런 다음 단위 테스트 중에 컴파일 테스트 라이브러리는 입력 Java 클래스를 컴파일하고 주석 프로세서를 실행 한 다음 생성 된 클래스를 resources 디렉토리의 예상 출력 클래스와 비교합니다. 이 모든 내 현재 자바 기반 단위 테스트를 위해 큰 노력 Unit test class Resources (Input and expected output classes
: 여기
내가 언급하고있는 무슨의 (내 프로젝트) 예입니다. 그러나 Kotlin 클래스를 사용하여 테스트를 작성하려고하면 클래스를로드 할 수 없습니다.나는 이것이 내가 다음 문제를 얻는 순간
(I가 자신의 프로젝트에 코 틀린에 대한 언급이 표시되지 않습니다) 맨 먼저 자바 특정 라이브러리되는 컴파일 테스트 라이브러리 때문이라고 생각 :
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이 최근에 주석 처리를 시작한 이래로 아마도이 문제가 처음입니까?