1

您如何确定构建测试失败的责任?我们有一个包含大约 80 个模块和 25000 个测试的大型 maven java 构建。当我们的每晚完成时,我们有一个现有和新失败的列表。

当测试失败时,我们有以下数据:

  • 自上次构建以来的提交者
  • 单元测试失败的调用堆栈
  • 源代码
  • maven依赖树

我们可以根据以下内容进行分配:

  • 自上次测试以来所有犯下的人
  • 谁最后接触了测试源文件
  • 谁最后接触测试(在调用堆栈中查找测试,查找行,使用 SVN 责备确定作者)

我想做的是确定测试失败的原因,找到最好的调查员并让他们修复它。但是,单元测试执行一个动作、检查和断言,然后抛出。调用堆栈来自断言而不是问题发生的地方。

我想我可以在断言之前扫描文件并追踪正在使用的对象。

  • 找到该对象的源文件。我只会看我的对象而不是 3rdparty
  • 确定自上次通过测试以来是否对其进行了修改。
  • 使用责备来识别作者

有没有人有更好的想法或知道处理部分或全部这种分析的插件?

谢谢

彼得

4

1 回答 1

3

如果您的测试被更好地命名并在失败时输出更好的消息,那么理论上您不应该需要堆栈跟踪直接找到问题的原因。当他们做出我的承诺时,它会启发人们为什么/如何破坏代码。我不知道这是否是现实中的一个选项,尤其是因为更糟糕的情况,您可能需要修改 25,000 个测试。

听起来您要求的工具已经是您正在使用的工具。您有自动化测试和构建失败时提交者的列表。我认为最大的问题是您的反馈循环需要一整夜。如果您有更多频繁运行的单元测试,那么当您破坏构建时会更加明显,因为您会更快地得到通知。

于 2013-08-22T00:23:15.763 回答