5

在提交之前,我更喜欢在我的 C# 解决方案中运行所有数百个单元测试,因为它们只需要几分钟即可运行。但是,如果我已经全部运行它们,一切都很好,然后我决定using在我的解决方案中组织指令,是否真的有必要重新运行单元测试?我有一个宏,它遍历解决方案中的所有文件,并在每个文件上运行 Visual Studio 的“删除和排序”命令。据我了解,只要所有项目在using指令更改后仍然构建,运行时也应该没问题。这是正确的想法吗?

4

3 回答 3

2

好吧,这部分取决于您对“删除和排序”功能的信任程度。据我所知,排序无关紧要 - 但存在哪些指令可能很重要

例如,假设你有这个扩展方法:

public static int Count<T>(this List<T> source)
{
    return 0;
}

如果这是在 namespace 中的类型中MyExtensions,并且原始代码是这样的:

using MyExtensions;
using System.Linq;

...
List<string> list = new List<string>();
int x = list.Count();

然后删除第一个 using 指令对可见的编译器输出没有影响(即没有错误,没有警告),但它会改变调用的扩展方法。

现在我个人相信“删除和排序”实际上不会做出如此改变行为的改变,而且你必须有一些非常脆弱的代码才能开始......但我只是想我会提到“它之后仍然构建”实际上不足以保证您的测试仍然有效。

就个人而言,无论如何我可能会再次运行测试,但如果有必要,我同样会很高兴不这样做。正如 Finglas 所提到的,如果您有一个持续的构建系统,无论如何都会提醒您进行重大更改,那么偶尔出错的后果可能不会太灾难性。当然,如果您有成千上万的开发人员会因签入损坏的代码而感到不便,那就另当别论了。

于 2010-05-27T20:42:51.240 回答
1

没关系。

不过就个人而言,我仍然会在提交任何代码之前运行测试。

于 2010-05-27T20:38:37.303 回答
0

是的。不需要重新运行单元测试。指令的顺序using与编译器无关。

于 2010-05-27T20:35:26.260 回答