Unit testing 格林先生在研究中用刀——谁打破了建筑?
您如何确定构建测试失败的责任?我们有一个大型maven java构建,包含大约80个模块和25000个测试。当我们的每夜工作完成时,我们有一个现有和新失败的列表 当测试失败时,我们有以下数据:Unit testing 格林先生在研究中用刀——谁打破了建筑?,unit-testing,maven,junit,Unit Testing,Maven,Junit,您如何确定构建测试失败的责任?我们有一个大型maven java构建,包含大约80个模块和25000个测试。当我们的每夜工作完成时,我们有一个现有和新失败的列表 当测试失败时,我们有以下数据: 自上次构建以来的提交者 来自单元测试失败的调用堆栈 源代码 maven依赖树 我们可以根据以下内容进行分配: 自上次测试以来犯下的所有罪行 谁上一次接触了测试源文件 最后一次接触测试的人(在调用堆栈中查找测试,查找行,使用SVN责备确定作者) 我想做的是确定测试失败的原因,找到最好的调查员并让他们
- 自上次构建以来的提交者
- 来自单元测试失败的调用堆栈
- 源代码
- maven依赖树
- 自上次测试以来犯下的所有罪行
- 谁上一次接触了测试源文件
- 最后一次接触测试的人(在调用堆栈中查找测试,查找行,使用SVN责备确定作者)
- 查找该对象的源文件。我只看我的物品,不看第三方
- 确定自上次通过测试后是否对其进行了修改李>
- 用责备来指认作者
Peter如果测试的名称更好,并且失败时输出的消息更好,那么理论上,您不需要直接跟踪问题的原因。这会让这个人明白,当他们做出我的承诺时,为什么/如何破坏代码。我不知道这在现实中是否是一个选项,尤其是因为更糟糕的情况是,您可能需要修改25000个测试
听起来你想要的工具已经是你正在使用的工具了。您已经完成了自动测试,并列出了构建中断时提交的人员。我认为最大的问题是你的反馈循环需要一整晚的时间。如果您有更多频繁运行的单元测试,那么当您破坏构建时会更加明显,因为您会更快地得到通知 是的,我可以将构建分解为单独的模块构建,这些模块构建在CI中运行,并在一天中执行测试。我使用的是maven,所以配置不会那么困难。