2016-08-09 3 views
0

현재 Eclipse 3.7 및 4.5에서 애플리케이션 중 하나를 전환해야합니다. 슬프게도 아무도 새로운 프레임 워크를 망쳐 놓은 것을 예상하지 못했습니다. 이것이 다른 애플리케이션이 현재 3.7에 머무르는 이유입니다. 이제 까다로운 부분이 있습니다. 버그 찾기 프로세스의 속도를 높이기 위해 4.5에 대한 일반적인 플러그인을 테스트하고 싶습니다 (그러나 여전히 3.7에 대해 테스트해야합니다).복수 대상 플랫폼에 대한 통합 테스트 실행

This thread은 도움이 될 가능성이 있음을 암시합니다. maven-invoker-plugin이지만 2 년 전의 이것이 실제로 사용되는 일반적인 사례이므로 더 나은 것이있을 것입니다.

maven-invoker-plugin을 Tycho와 함께 사용하는 방법을 찾지 못했습니다. tycho-surefire-plugin에는 대상 플랫폼을 변경하는 옵션이없는 것 같습니다.

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <configuration> 
     <resolver>p2</resolver> 
     <target> 
      <artifact> 
       <groupId>${project.groupId}</groupId> 
       <artifactId>org.acme.project</artifactId> 
       <version>${project.version}</version> 
       <classifier>platform</classifier> 
      </artifact> 
     </target> 
    </configuration> 
</plugin> 

그래서 어떻게 여러 대상에 대해 내 통합 테스트를 테스트합니까 :

그냥 경우에, 나는 (문서 외부에서 사용/지원 될 것 같지 않는)이 대상 플랫폼에 대해서 이야기하고 플랫폼?

답변

0

단일 빌드, 즉 단일 원자로에서이 작업을 수행해야합니까? 그렇지 않다면, 당신은 단순히 Jenkins/Hudson matrix build에 의해, 예를 들어 메이븐에 전달 시스템 속성을 기준으로 대상 플랫폼을 전환 할 수 있습니다

<target> 
    <artifact> 
    <groupId>${project.groupId}</groupId> 
    <artifactId>${targetPlatform}</artifactId> 
    <version>${project.version}</version> 
    <classifier>platform</classifier> 
    </artifact> 
</target> 

그냥 project/properties에서 당신의 targetPlatform 속성의 기본을 구성하는 기억, 그래서 -DtargetPlatform=... 설정하지 않고 빌드 실패하지 않을 것이다.

은 (이클립스 코드 추천인, 우리는 정기적으로 test against 6 different Eclipse releases에이 설정을 사용합니다.)

0

나는 또한 같은 반응기에서의 테스트를 실행하는 방법을 발견했다.

나는 모든 테스트 클래스없이 테스트 조각의 복사본을 만들고 target-platform-configuration을 통해 E4 대상 플랫폼을 추가했습니다. 그럼 난 새 모듈에 클래스와 fragment.xml을 복사하려면이 코드를 사용 : 마지막으로 build.properties는 메이븐 빌드가 복사 된 클래스를 컴파일 할 수 있도록 라인 source.. = target/it-classes/이 있어야합니다

<plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>3.0.1</version> 
    <executions> 
     <execution> 
      <id>copy-classes</id> 
      <phase>validate</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${basedir}/target/it-classes</outputDirectory> 
       <resources> 
        <resource> 
         <directory>../${original-test-project}/src</directory> 
         <filtering>true</filtering> 
        </resource> 
       </resources> 
      </configuration> 
     </execution> 
     <execution> 
      <id>copy-fragment</id> 
      <phase>validate</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${basedir}/</outputDirectory> 
       <resources> 
        <resource> 
         <directory>../${original-test-project}/</directory> 
         <includes> 
          <include>fragment.xml</include> 
         </includes> 
        </resource> 
       </resources> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

및 정상적으로 실행하십시오.

관련 문제