0

IntelliJ (v2016.3)에서 JUnit 테스트의 기본 구성은 실행하기 전에 Build을 실행하는 것입니다. 일반적으로 이것은 테스트를 실행하기 전에 모든 변경 사항이 적용되었는지 확인하는 좋은 방법입니다. 그러나 생성 된 코드의 컴파일 된 클래스를 삭제하는 것 같습니다. 예상 한대로 이것은 생성 된 클래스에 대한 테스트가 더 이상 테스트하려는 클래스를 찾을 수 없기 때문에 테스트가 실패 함을 의미합니다!IntelliJ에서 테스트를 실행할 때 생성 된 소스에서 컴파일 된 클래스를 제거하지 못하게하는 방법은 무엇입니까?

테스트를 실행할 때 컴파일 된 생성 된 클래스가 날아 가지 않으면 IntelliJ의 기본 "빌드 시작 전 빌드"동작을 어떻게 유지합니까?

일부 세부 정보가 있습니다.

저는 롬복이 아닌 Immutables 라이브러리를 사용하고 있습니다. 따라서 "일반적인"Java 어노테이션 메커니즘을 사용하여 생성 된 코드입니다. IntelliJ는 변경 사항을 기꺼이 받아들이고 주석을 통해 Java 코드를 생성합니다. 또한 생성 된 Java 파일이 변경되면 컴파일 된 Java 파일을 컴파일합니다. 따라서 일반적인 "자동 빌드"동작이 작동하는 것처럼 보입니다. 필자에게 이것은 주석 처리기를 올바르게 설정했음을 나타냅니다.

수동으로 "빌드 모듈"을 실행하거나 테스트 전에 "빌드"를 실행하면 생성 된 Java 파일의 클래스 파일이 제거됩니다. 생성 된 Java 파일은 어떤 식 으로든 변경되지 않지만 컴파일 된 클래스 파일은 제거됩니다. 나에게 이것은 빌드를 통해 생성 된 소스 종속성에주의를 기울이지 않는 무언가가 있음을 의미합니다.

내가 언급 한 한 가지는 소스가 생성 소스 루트로 생성되는 디렉토리에 표시하지 않으면 "생성 된 소스 파일의 클래스 파일을 삭제"동작이 발생하지 않는다는 것입니다. 이것의 단점은 IntelliJ가 더 이상 생성 된 클래스를 인식하지 않고이를 사용하는 코드에서 알 수없는 것으로 표시한다는 것입니다.

  • Preferences -> Annotation ProcessorsModule content root, Obtain processors from project classpath을 사용하고, 지정된 생산 및 테스트 소스 디렉토리 필드가 (소스 파일을 생성 할 때 사람들을 존중하는 것 같다)
  • Preferences -> Compiler을 :

    은 내가 IntelliJ를 구성 얼마나 Clear output directory on rebuild를 사용하지되어 사용입니다 Build project automatically

  • File -> Other Settings -> Annotation Processors 위의 두 점에 표시된 것과 같은 구성이
  • 소스 내가 너무 오래이에 내 머리를 두들겨 봤는데 생성 된 소스 디렉토리

로 표시됩니다으로 생성되는 디렉토리, 시도 내가 생각할 수있는 모든 것과 누군가가 암시하는 모든 것도 있지만, 아무 소용이 없습니다. 이 작업을 수행하는 방법에 대한 도움이 ("테스트 설정에서 빌드 옵션 제거"제외) 놀랍도록 도움이되고 깊이 감사 할 것입니다.

답변

0

나는 (나를 위해) Atlassian Clover 플러그인을 제거하여 해결 된 동일한 문제가있었습니다.

관련 문제