0

我正在寻找可以解决以下问题的工具:

我们完整的单元测试套件需要数小时才能完成。因此,当程序员提交代码时,他会在几个小时后得到测试结果。我们想要实现的是缩短查找简单错误的时间。这可以通过智能选择几个单元测试来完成,这些单元测试将在提交之前/之后运行。当然,我们不想随机选择这个单元测试——我们希望单元测试更有可能发现错误。

无需额外软件即可解决此问题的想法:为每个单独的单元测试进行代码覆盖。知道哪个文件被哪个单元测试“触及”,如果用户更改了这些文件中的任何一个,我们就可以选择这个单元测试。这个解决方案有明显的缺点——我们必须为每个单元测试手动存储和更新覆盖文件的列表。

我想知道,是否有任何工具可以帮助选择要运行的测试?项目使用 C++ 并在 Linux 下工作。

4

1 回答 1

0

《有效地使用遗留代码》中,Michael Feathers 写道,一个需要 10 毫秒的单元测试是一个缓慢的单元测试。您必须根除缓慢的测试。不要根据覆盖范围猜测来破解子集跑步者,这最终会出错并咬你

请记住单元测试和集成测试之间的区别。单元测试不涉及文件系统,不通过网络交谈,也不与数据库通信:这些是集成测试。是的,集成测试通常更容易编写,但这有力地表明您的软件可以更好地考虑因素——而且幸运的是,更容易测试。

我怀疑您的集成测试需要这么长时间。将它们移到单独的套件中,该套件的运行频率低于每次签到时运行的频率,例如每晚。

于 2013-01-09T15:43:53.343 回答