1

我有 2 个项目,每个项目都有自己的单元测试项目,每个项目+测试项目对都有一个 app.config。如果我每次只运行一个,测试就不会失败。但是,如果使用“在解决方案中运行所有测试”,所有测试将只使用 app.config 之一,并且对于这些测试项目之一中的所有测试,这将是错误的。

如何从单个项目运行所有测试而不必使用单独的解决方案,因此它们不使用另一个项目的 app.config?

4

1 回答 1

2

我不认为你能做到。您可能遇到的问题是 Visual Studio 只会将一个测试列表传递给 MSTest。启动时的 MSTest 将使用它遇到的第一个 .DLL 的配置文件。

出于性能原因,MSTest 在遇到不同 .DLL 中的测试时不会关闭/启动新进程,因此它永远不会加载第二个配置文件。

在我看来,您有两种选择。

  1. 合并配置文件,以便在测试之间共享它们。

  2. 更改您的测试,使它们不需要配置文件。您拥有它们的事实表明您正在进行集成测试而不是与它们的依赖项隔离的单元测试,但如果您有一个复杂的代码库,我可以理解它为什么会发生。

于 2009-02-06T04:51:53.653 回答