我使用maven2和hudson进行持续集成已经有一段时间了,但我发现它们不能很好地结合在一起。当然有一个插件,但是把maven项目混合到eclipse喜欢的东西中是很古怪的,而且构建时间和单元测试太长了。我正在考虑切换回一个没有ant和maven参与的纯eclipse项目。有了infinitest插件和可能的JavaRebel代理,它会给我一个非常快的构建-部署-测试周期。然而,我仍然希望有自动化和测试以及,所以:
如何在Eclipse项目中使用持续集成?
有没有一种命令行的方式呢?
有没有已经在本地支持它的构建服务器?
发布于 2008-10-23 13:32:54
我设法找到了一个好的解决方案。在使用maven和Eclipse时,我简单地使用了infinitest (可以从eclipse marketplace安装)。
在Eclipse->Project Properties->Java Build Path->Source中,取消选中名为"Allow output folders for source folders“的复选框
这将使您的项目具有多个输出路径,然后Eclipse将开始将测试类作为类路径的一部分进行报告。Infinitest现在找到它并开始运行测试!
我所做的就是使用官方的Maven Eclipse插件并将其添加到我的POM中
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.infinitest</groupId>
<artifactId>infinitest</artifactId>
<scope>test</scope>
<version>4.0</version>
</dependency>
</dependencies>发布于 2008-10-02 09:18:26
是的,Eclipse Maven2插件目前还是个垃圾。但我建议你坚持住,使用Maven2有很多好处,所以它实际上是平衡的。
我们所做的是,我们使用Eclipse进行开发,并且只使用Maven管理依赖项。其他所有工作都是通过在命令行上运行"mvn“来完成的。我们将测试放在他们自己的集成测试项目中(... -itest ),并让持续集成服务器分两个阶段进行构建,第一阶段构建实际代码,第二阶段构建并运行-itest项目。(第一次通过(纯构建)通常非常快,而集成测试构建(运行测试)通常需要相当长的时间。)
下面是让mvn运行测试的命令行:mvn -o verify -Ditest
当然,你需要在你的父pom中定义'itest‘配置文件:比如,如下所示:
<profiles>
<profile>
<id>integration-test</id>
<activation>
<property>
<name>itest</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>itest</id>
</execution>
</executions>
<configuration>
<testSourceDirectory>src/main</testSourceDirectory>
<testClassesDirectory>target/classes</testClassesDirectory>
<forkMode>once</forkMode>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>发布于 2008-10-08 20:21:06
我在CruiseControl中使用Eclipse已经取得了相当的成功。如果您想要自动化,您可能需要的不仅仅是纯Eclipse。
CruiseControl可以自动从源代码管理中签出项目的副本,构建它,运行测试,然后使用结果更新web应用程序。上一次我用它的时候还挺圆滑的,但那已经是很久以前的事了。
https://stackoverflow.com/questions/161222
复制相似问题