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

时间:2011-04-11 05:26:06

标签: unit-testing configuration

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

实验项目1:

  • 一个简单的非测试DLL。 (它只会从自己的app.config文件中读取和打印应用程序设置值。

  • 一个主EXE文件,它调用DLL来打印其配置值。

实验项目2:

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

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

结果:

对于1.不打印DLL的配置值。

对于2. DLL自己的配置值被成功读取并写入文件。

那么, mstest.exe 是否有什么特别之处?

感谢。


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

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


如何将配置文件加载到AppDomain中? - 要将配置文件加载到AppDomain,请使用:

  

AppDomainSetup ad2setup = new   AppDomainSetup();

     

ad2setup.ConfigurationFile = @“config   文件路径“;

1 个答案:

答案 0 :(得分:1)

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