我在我的hudson服务器中添加了一个新作业,该服务器使用makefile构建项目。
执行shell命令:
#!/bin/bash
cd $JOB_NAME
make
我的makefile看起来像这样
SDK_31 = iphonesimulator3.1
TARGET_DEV = myProject
TARGET_TEST = unitTest
all: debug
debug:
xcodebuild -sdk ${SDK_31} -target "${TARGET_DEV}" -configuration Debug
xcodebuild -sdk ${SDK_31} -target "${TARGET_TEST}" -configuration Debug
clean:
xcodebuild -alltargets clean
rm -rf build
但是当hudson构建项目时,一些单元测试会失败,但构建被标记为成功。
我应该怎么做才能有一个“不稳定的项目”?
致以最诚挚的问候,
答案 0 :(得分:2)
您应该通过启用“发布Junit测试结果报告”构建后操作来配置Hudson以记录单元测试结果。
post-build actions http://img141.imageshack.us/img141/5136/hudsonjunit.png
更新:如果您无法获得JUnit XML输出,您应该能够使用Text-finder plugin来更改构建状态:
此插件允许您搜索指定文件中的关键字,并使用该插件将构建标记为成功或失败。
答案 1 :(得分:1)
我发现Christian Hedin使用这个方便的ruby脚本将OCUnit测试的输出(Xcode使用的格式)转换为JUnit xml文件(Hudson使用的格式)。
你可以在github上获取脚本: http://github.com/ciryon/OCUnit2JUnit
以及如何使用它的解释,这是他的博客文章: http://blog.jayway.com/2010/01/31/continuos-integration-for-xcode-projects/
基本上,你用这样的命令将xcodebuild传递到ocunit2junit.rb:
/usr/bin/xcodebuild -target UnitTests | /usr/local/bin/ocunit2junit.rb
并将xml文件放入它在项目文件夹根目录下创建的测试报告文件夹中。然后告诉Hudson将test-reports/*.xml
工件复制为JUnit结果并进行设置。
此设置将允许Hudson正确识别单元测试是否已通过或失败,并正确标记构建的稳定性。
我已经使用它一个月了,效果很好。设置非常简单。