我有一个团队构建(升级模板,tfs2010,msbuild)编译和测试WCF服务。在针对它运行集成测试套件之前,我们使用psexec和exec任务在Web服务器上远程安装服务(wix安装程序)。但是有时我们的夜间构建会因编译错误而失败 - 只能看到前1024个字节,而且大多数都是css样式。我试图用睡眠延迟测试,认为这可能是由于长时间的JIT。然而,所有600多个集成测试都失败了在构建日志中,似乎psexec的exec任务正如预期的那样同步执行,并返回一个出口0.有人能想出为什么会出现这种情况的原因吗?
答案 0 :(得分:0)
这听起来不像是TFS,msbuild或psexec特有的东西 - 听起来这个服务可能存在临时安装,配置或编码问题。 CI和集成测试的重点是尽早获得有关您的流程的反馈,显然有些问题是错误的。诀窍是深入研究问题并排除问题所在的位置。
Psexec声称WiX部署顺利,但是做到了吗?是否所有文件都存在?是否正确删除了以前版本的安装,或者它们是否正确升级了?
所有600次测试都失败了,但测试中没有包含正确的堆栈跟踪 - 您是否可以在测试之外重现问题?例如,当测试失败时,您可以手动模拟测试,还是使用附加的调试器运行现有测试之一以查看相同的堆栈跟踪?一种策略可能是确定准确验证部署的一个或两个特定测试 - 在部署后仅运行这些测试,如果这些测试失败,则应中止构建,然后使服务器处于故障状态以进行更深入的分析。这可能需要自定义构建模板,但这可能是值得的。
您可以将日志记录添加到WCF服务吗?更好地记录测试?
最后,如前所述,CI是关于早期反馈的。一般规则是,“如果事情是痛苦的,那么你应该更频繁地去做。”专注于痛点,隔离它们并反复改进它们。当疼痛减轻时,请关注其他疼痛点。在您的情况下,考虑以滚动的方式运行您的“夜间”构建 - 您将在几次运行而不是几周后发现您的间歇性问题。