我已阅读您是否将单元测试放在同一个项目或另一个项目中的答案?当时(大约 10 年前)的共识是将单元测试与他们正在测试的代码放在一个单独的项目中。给出的主要原因是避免部署非生产代码,这是相当合理的。
从那以后事情发生了很大的变化,至少对于基于 JavaScript 的项目来说,将我们的测试放在代码旁边是常态,而且实际上大多数人认为这是非常可取的。但我不会在这里讨论优势,因为这不是这个问题的意义所在。
假设我们想为 C# 做同样的事情,但仍然避免将测试代码部署到 prod,我们可以在 IL 级别编织一些编译后的魔法,以作为构建过程的一部分从二进制文件中剥离测试吗?例如,我们可以从具有该[TestFixture]
属性的二进制文件中搜索并销毁所有类吗?
我们可以利用 Roslyn 的某些特性来实现同样的目标吗?
或者,我们可以采取其他方法吗?