单元测试类是否应该在版本控制下与其余代码保持一致?

时间:2008-09-22 14:24:18

标签: unit-testing version-control

如果我为开发项目创建一个测试套件,那么这些类是否应该使用项目代码的其余部分保持版本控制?

13 个答案:

答案 0 :(得分:29)

是的,没有理由不将它们置于源代码管理中。如果测试改变怎么办?如果接口发生变化,需要更改测试怎么办?

答案 1 :(得分:4)

是的,将生产代码放入源代码管理的所有相同原因仍然适用于您编写的任何单元测试。

这是经典的人,问题在哪里以及为何:

  • 谁更改了代码?
  • 他们什么时候改变了?
  • 他们改变了什么?

这些问题与测试代码和生产代码一样重要。您绝对应该将您的单元测试代码放入存储库。

答案 2 :(得分:3)

绝对。测试类必须与代码保持同步。这意味着在持续集成下检查并运行测试。

答案 3 :(得分:2)

绝对!测试类是源代码,应该像任何其他源代码一样进行管理。您需要修改它们并跟踪版本,并且您想知道维护历史记录。

您还应该将测试数据保留在源代码管理之下,除非它非常大。

答案 4 :(得分:1)

单元测试应该绑定到存储库中的代码库。

除了您必须为之前版本生成维护版本之外没有其他原因,您可以保证,根据您的单元测试的指标,您的代码并不比以前更差(并且希望现在更好)

答案 5 :(得分:1)

确实是的。怎么可能有人不这么想?

如果您使用代码分支,您应该尝试使您的测试代码自然地适合主代码行,因此当您分支时,正确的测试版本也会分支。

答案 6 :(得分:0)

是的,他们应该。检查最新版本的人应该能够在他们的机器上对代码进行单元测试。这将有助于识别缺失的依赖项,还可以为它们提供有关代码如何工作的非官方文档。

答案 7 :(得分:0)

是。

测试代码是一个代码。它应该被维护,重构和版本化。它是系统源的一部分。

答案 8 :(得分:0)

当然,他们应该被视为代码库的一等公民。他们需要所有的爱和关怀,即维护任何一段代码。

答案 9 :(得分:0)

是的,他们应该。每当进行代码更改时,您应该检查测试并运行它们。如果你把它们放在别的地方去运行它们会更麻烦。

答案 10 :(得分:0)

是。由于此处提到的所有其他原因,以及随着功能的变化,您的测试套件将发生变化,并且应该很容易为任何给定的版本,分支等获得正确的测试套件,并且不仅要进行测试在版本控制中,但与代码相同的存储库是实现这一目标的方法。

答案 11 :(得分:0)

绝对。您可能会发现,随着代码更改,您的测试也可能需要更改,因此您可能希望记录这些更改,尤其是在测试或代码突然停止工作的情况下。 ; - )

此外,单元测试用例应尽可能接近他们正在测试的实际代码(同一文件的底部似乎是标准)。它既方便又便于维护。

有关进行良好单元测试的更多信息,请查看this stackoverflow post

答案 12 :(得分:0)

是的,出于上述所有原因,如果您正在使用“观察”源控件的持续集成服务器,您可以让它在每次提交时运行最新的单元测试。

这意味着破坏的构建会导致单元测试失败以及代码未编译。