我目前的任务是从Eclipse3.7和4.5中切换我们的一个应用程序。遗憾的是,没有人预料到新框架会有多糟糕,这就是为什么其他应用程序目前将保持3.7。现在来了一个棘手的部分:为了加快错误发现过程,我想测试我们常见的插件,而不是4.5 (当然,它们仍然需要测试3.7 )。
这个帖子建议使用help maven-invoker-plugin可能是可能的,但是它已经有两年历史了,这是一个非常常见的用例,所以现在可能会有更好的东西。
我找不到任何关于如何使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>那么,如何针对多个目标平台测试集成测试呢?
发布于 2016-08-16 16:16:39
你是否需要在一个单独的建造过程中,即在一个反应堆中这样做?如果不是,您可以根据传递给Maven的系统属性(例如,通过Jenkins/Hudson矩阵构建 )切换目标平台。
<target>
<artifact>
<groupId>${project.groupId}</groupId>
<artifactId>${targetPlatform}</artifactId>
<version>${project.version}</version>
<classifier>platform</classifier>
</artifact>
</target>只需记住在targetPlatform下为project/properties属性配置一个默认设置,这样没有设置-DtargetPlatform=...的构建就不会失败。
(在Eclipse推荐程序中,我们使用此设置定期使用针对6种不同的Eclipse版本进行测试。)
发布于 2016-08-17 05:58:04
我还找到了在同一个反应堆里进行测试的方法。
我创建了一个没有所有测试类的测试片段的副本,并通过E4添加了target-platform-configuration目标平台。然后,我使用这段代码将类和fragment.xml复制到新模块:
<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>最后,build.properties必须有行source.. = target/it-classes/,以便Maven构建可以编译复制的类并正常运行它们。
https://stackoverflow.com/questions/38844629
复制相似问题