首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对多个目标平台运行集成测试

针对多个目标平台运行集成测试
EN

Stack Overflow用户
提问于 2016-08-09 07:29:54
回答 2查看 101关注 0票数 0

我目前的任务是从Eclipse3.7和4.5中切换我们的一个应用程序。遗憾的是,没有人预料到新框架会有多糟糕,这就是为什么其他应用程序目前将保持3.7。现在来了一个棘手的部分:为了加快错误发现过程,我想测试我们常见的插件,而不是4.5 (当然,它们仍然需要测试3.7 )。

这个帖子建议使用help maven-invoker-plugin可能是可能的,但是它已经有两年历史了,这是一个非常常见的用例,所以现在可能会有更好的东西。

我找不到任何关于如何使maven-invoker-plugin与Tycho一起工作的东西。而且tycho-surefire-plugin似乎没有任何选择来改变目标平台。

以防万一,我说的是这个目标平台(它在文档之外似乎没有得到支持/使用):

代码语言:javascript
复制
<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>

那么,如何针对多个目标平台测试集成测试呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-16 16:16:39

你是否需要在一个单独的建造过程中,即在一个反应堆中这样做?如果不是,您可以根据传递给Maven的系统属性(例如,通过Jenkins/Hudson矩阵构建 )切换目标平台。

代码语言:javascript
复制
<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版本进行测试。)

票数 0
EN

Stack Overflow用户

发布于 2016-08-17 05:58:04

我还找到了在同一个反应堆里进行测试的方法。

我创建了一个没有所有测试类的测试片段的副本,并通过E4添加了target-platform-configuration目标平台。然后,我使用这段代码将类和fragment.xml复制到新模块:

代码语言:javascript
复制
<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构建可以编译复制的类并正常运行它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38844629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档