我有2个项目,每个项目都有自己的单元测试项目,每个项目+测试项目对有一个app.config。如果我每次只运行一次,测试不会失败。但是如果使用“在解决方案中运行所有测试”,所有测试将仅使用app.config中的一个,并且对于其中一个测试项目中的所有测试,它将是错误的。
如何在不使用单独的解决方案的情况下从单个项目运行所有测试,因此他们不使用其他项目的app.config?
答案 0 :(得分:2)
我认为你不会。您可能遇到的问题是Visual Studio只是将一个测试列表传递给MSTest。启动时的MSTest将使用它遇到的第一个.DLL的配置文件。
出于性能原因,MSTest在遇到不同.DLL的测试时不会拆除/启动新进程,因此它永远不会加载第二个配置文件。
我认为你有两种选择。
合并配置文件,以便在测试中共享它们。
更改测试,使其不需要配置文件。您拥有它们的事实表明您正在进行集成测试,而不是从依赖项中隔离的单元测试,但如果您有一个复杂的代码库,我可以理解它为什么会发生。