【问题标题】:How mstest.exe treat test DLL's config file?mstest.exe 如何处理测试 DLL 的配置文件?
【发布时间】:2011-04-11 05:26:05
【问题描述】:

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

实验项目一:

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

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

实验项目2:

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

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

结果:

1.不打印DLL的配置值。

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

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

谢谢。


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

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


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

AppDomainSetup ad2setup = new AppDomainSetup();

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

【问题讨论】:

    标签: unit-testing configuration


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-17
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      相关资源
      最近更新 更多