单元测试 - mstest.exe如何处理测试 DLL 的配置文件?



我对mstest.exe处理测试DLL的app.config文件的方式有点困惑。

实验项目1:

  • 一个简单的非测试DLL。(它什么也不做,只是从自己的app.config文件中读取和打印应用程序的设置值。)

  • 调用DLL打印配置值的主EXE文件。

实验项目2:

  • 一个单元测试DLL,它只包含一个测试方法,用于从自己的app.config文件中读取应用程序的设置值并将其写入文件。

  • 我使用mstest.exe来调用单元测试DLL。

结果:

1。DLL的配置值没有打印。

2。成功地将DLL自己的配置值读写到文件中。

那么,mstest.exe有什么特别的吗?

谢谢。


我使用SOS.dll通过我的单元测试DLL进行调试。我发现,对于每个单元测试DLL,都创建了一个单独的应用程序域。这些应用程序域与名称为vstesthost.exe的应用程序域不同。我认为配置是特定于一个应用程序域。exe将为每个测试DLL创建一个应用程序域,并分别将其自己的配置文件加载到应用程序域中。

希望有人能给一个更自信的解释。


如何加载配置文件到AppDomain?——加载配置文件到AppDomain,使用如下命令:

AppDomainSetup ad2setup = new

AppDomainSetup ();

ad2setup。ConfigurationFile = @"

文件path";

是的,mstest.exe有一些特别之处。它会将所有引用dll复制到另一个目录并从那里执行(我不确定它为什么会这样做,因为像NCover这样的工具只是从bin文件夹中运行测试)。因此,除了dll之外,您还必须配置您希望复制的任何其他内容。执行此操作的标准方法是在.testrunconfig文件中指定部署项。您可以通过转到测试/编辑测试运行配置/部署来做到这一点。您可以使用"Add File…"按钮来添加配置文件。

最新更新