2012-04-24 92 views
0

我们的铁轨开发团队试图遵循持续集成。我们决定采取仅实施测试通过的功能的策略。这是继续进行的好方法吗?我是否应该延迟与其他人的功能进行整合,直到我的测试通过(即使部分功能工作正常)?在此先感谢我应该承诺测试仍然通过(失败)?

回答

4

测试应该通过 - 如果您正在运行CI服务器,它只会在用户发送邮件之前将垃圾邮件发送给他人。如果没有CI服务器,每个人都必须弄清楚这些测试是否“假设”失败。嘘。

另一种选择是只检查实际编写的功能的测试;如果您使用测试作为可执行规范,那么在完成整个应用程序之前,它们不会全部通过,并且没有人能够检查任何事情。

您也可以将测试标记为“正在等待”或指示它们应该跳过,但要记住un – pend/-skip它们通常是有问题的。

+1

本质上这。您的测试应该始终通过,并且您应该只提交您提供的测试。测试是有原因的。 – 2012-04-24 00:18:32

0

我将等待其他功能之前,我会亲自等待测试通过。

1

测试应该通过这就是为什么你写他们的原因,如果由于某种原因一个或多个测试不通过,它表明出现了问题(显然),你和你的团队应该工作在解决方案上。

如果代码用试验失败的承诺,垃圾邮件指责谁做的程序员,这样一来,下一次他将提交代码

之前更注重听说要避免与测试提交代码的一种方式失败,但我没有亲自测试,它涉及到有两个存储库(它可能是一个分支),背后的理论是:

  1. 开发商承诺将针对一个分支,这个分支的目的只是为了保证所有的测试都通过了,你应该配置你的CI服务器来建立并运行这个分支的测试

  2. 当所有的测试都通过分支,合并应做主干,因为每个人都应该对这个分行的工作合并应该是透明的和自动

我重复一遍,我没有测试了这种方法,在我看来它涉及更多的问题,而不是解决的问题

另一种方法是在VCS中为提交事件添加一个挂钩并强制运行所有测试,但这可能会耗费大量时间,承诺

随着更多的信息,你可以检查这个响应

https://stackoverflow.com/a/7110774/1268570