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

标签 unit-testing configuration

我有点迷路 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,都会创建一个单独的应用程序域。而这些 App Domains 与名称为 的不同。 vstesthost.exe . 我相信该配置特定于应用程序域 . Mstest.exe 将为每个测试 DLL 创建一个应用程序域,并将其自己的配置文件分别加载到应用程序域中。
    希望有人能给出更自信的解释。

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

    AppDomainSetup ad2setup = new AppDomainSetup();

    ad2setup.ConfigurationFile = @"config file path";

    最佳答案

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

    关于unit-testing - mstest.exe 如何处理测试 DLL 的配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617083/

    相关文章:

    c# - 犀牛模拟中的 AssertWasCalled

    linux - 从终端更改 Ubuntu 12.04 中的系统代理设置

    php - 交响乐2。没有能够加载配置的扩展。自定义配置 block

    xcode - 在错误的 Build/Products 文件夹中使用自己的配置对 native 构建使用react

    unit-testing - chalice 2.4.4 : How do mock a transient service inside a domain?

    c# - 如果我对模拟对象设置期望,它会在我正在测试的方法调用的私有(private)方法中使用吗?

    javascript - 如何使用 jest 模拟 $()

    unit-testing - 使用 mocha 测试 Angular 2 服务

    Apache 监听配置

    java - 在 web.xml 中定义和初始化变量然后从 Java 代码访问它们的最佳实践