프로젝트에서 가지고있는 Junits는 classpath에서 속성 파일을로드해야합니다. Maven이 테스트를 실행하기 전에 classpath에 그 속성 파일을 설정할 수 있도록 어떻게 그 속성 파일의 디렉토리를 지정할 수 있습니까?Maven - 테스트를 실행하는 동안 클래스 경로에 디렉토리 추가
답변
build-helper-maven-plugin을 사용하여 다음과 같이 추가 테스트 리소스 디렉토리를 지정할 수 있습니다. 아래의 구성을 사용하여 테스트 자원 디렉토리의 내용은 생성 테스트 - 소스 중에 대상/테스트-classes 디렉토리에 복사됩니다 단계 : 당신이 당신의 재산을 넣어하려는 경우
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>add-test-resource</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>path/to/additional/test/resources</directory>
<excludes>
<exclude>**/folder-to-exclude/**</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>/add/this/to/path</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
불행하게도, Eclipse에서 테스트를 실행할 때 m2e는 Surefire의 구성을 선택하지 않습니다. build-helper-maven-plugin의 add-test-resource 목표보다 약간 간단하기 때문에 너무 나쁘다. – thSoft
왜 그냥 test/resources
를 사용에서 클래스 패스에 속성을 배치 파일을 디스크에있는 곳과 빌드시/테스트 클래스를 대상으로 그 속성 파일을 복사하지 않으려는, 당신은이 방법을 수행 할 수 있습니다 그 점. 그들은 테스트 단계에만있을 것입니다.
하나의 폴더 만 있지만 테스트 환경이 두 개 이상인 경우가 많습니다. – 30thh
친구 인 Maven 프로필을 확인하십시오. –
리소스 환경이 여러 개인 경우 maven 프로필을 사용하여 테스트중인 프로필에 따라 다양한 리소스를 배치 할 수 있습니다.
test/resources/uat
test/resources/prod
test/resources/dev
하지만 일반적으로 통합 테스트를 수행해야하는 경우 build-helper-maven-plugin이 필요하지 않습니다.
maven-resources-plugin
은 리소스를 복사 할 수있는 copy-resources
목표를 가지고 있습니다. (당신이 project.build.testOutputDirectory을 수정하지 않는 한)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>additional-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/conf</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
이는 target/test-classes
폴더에 프로젝트의 자료에 conf
폴더의 내용을 복사합니다 단위 테스트 중에 클래스 경로에 추가됩니다 예를 들면 다음과 같습니다 .
새 테스트 리소스 폴더를 추가 할 수도 있습니다.
<build>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
<testResource>
<directory>${project.basedir}/src/test/something_else</directory>
</testResource>
</testResources>
</build>
첫 번째 경로 인 src/test/resources
이 기본값입니다. 여전히 기본 경로가 사용되기를 원한다면 경로가 포함되어 있는지 확인하십시오. (testResources
태그는 기본값을 덮어 씁니다. 따라서 기본 경로를 명시 적으로 포함하지 않으면 사용이 중지됩니다.
이것은 나를 위해 일했습니다. 기본 값에 대한 필요성을 지적하기 위해 +1. –
그게 바로 내가 뭘 찾고 있었는지 고마워! 수락 된'build-helper-maven-plugin' 솔루션보다 훨씬 간단합니다. 이렇게하는 좋은 방법을 찾고있는 다른 사람에게는'
- 1. 클래스 경로에 파일을 추가
- 2. Eclipse 클래스 경로에 폴더 추가
- 3. Maven jetty plugin 및 resources 디렉토리
- 4. Maven systemPath가 런타임 클래스 경로에 추가되지 않았습니다.
- 5. cc.net을 통해 테스트를 실행하는 동안 IE가 끊깁니다.
- 6. Netbeans에서 JUnit 테스트를 실행하는 동안 java.lang.NoClassDefFoundError
- 7. Teamcity에서 테스트를 실행하는 동안 SetUp 메서드가 실패했습니다.
- 8. 클래스 경로에 항아리 추가, Eclipse, Android
- 9. maven에서 서블릿 테스트를 위해 httpunit을 사용하는 동안 프로젝트 클래스 경로에 java ee api가 없습니다.
- 10. Cmake : 포함 경로에 디렉토리 빌드
- 11. Windows 7의 DLL 검색 경로에 임시로 디렉토리 추가
- 12. DUnit : 테스트를 실행하는 방법?
- 13. NetBeans + Maven, 클래스 경로
- 14. 참조 된 Eclipse 프로젝트를 Maven 종속성에 추가
- 15. Eclipse에서 Maven 디렉토리 구조에 누락 된 디렉토리
- 16. 단위 테스트를 실행하는 MSBuild
- 17. NUnit에서이 테스트를 실행하는 방법
- 18. iPhone 단위 테스트를 실행하는 동안 메모리 누수 찾기
- 19. Selenium에서 테스트를 실행하는 동안 웹 페이지를 열 수 없습니다.
- 20. 이클립스에서 통합 테스트를 실행하는 동안 null 포인터 예외가 발생합니다.
- 21. 클래스 경로에 클래스가 없습니다.
- 22. Maven/Surefire unittest "mvn test"를 실행하는 동안 매니페스트를 사용하려면 어떻게해야합니까?
- 23. 루비로드 경로에 무언가를 추가
- 24. Maven : 단위 테스트를 원격으로 실행
- 25. 인스턴스가있는 JRun 서버에서 실행중인 ColdFusion 클래스 경로에 추가
- 26. 병에서 실행하는 동안 NoClassDefFoundError
- 27. 포장시 maven "디렉토리 항목 추가"를 수행하는 방법은 무엇입니까?
- 28. "디렉토리 배포"Glassfish + Maven + Eclipse
- 29. 특정 프로젝트에 대한 클래스 경로에 추가 후 Junit 경고가 발생합니다.
- 30. Rails 3에서 테스트를 실행하는 작업을 어떻게 작성합니까?
기능적으로는 상관 없지만 질서 정연한 경우 위상 생성 테스트를해서는 안됩니다 generate-test-sources 대신 -resources를 사용합니까? – thSoft