Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing mstest.exe如何处理测试DLL';s配置文件?_Unit Testing_Configuration - Fatal编程技术网

Unit testing mstest.exe如何处理测试DLL';s配置文件?

Unit testing mstest.exe如何处理测试DLL';s配置文件?,unit-testing,configuration,Unit Testing,Configuration,我对处理测试DLL的app.config文件的方式有点困惑 实验项目1: 一个普通的非测试DLL。(它只从自己的app.config文件中读取和打印应用程序设置值。) 调用DLL以打印其配置值的主EXE文件 实验项目2: 一种单元测试DLL,只包含一种测试方法,用于从自己的app.config文件中读取应用程序设置值并将其写入文件 我使用mstest.exe调用单元测试DLL 结果: 1。未打印DLL的配置值 两个人。DLL自身的配置值已成功读取并写入文件 那么,mstest.e

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

实验项目1:

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

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

实验项目2:

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

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

结果:

1。未打印DLL的配置值

两个人。DLL自身的配置值已成功读取并写入文件

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

谢谢


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

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


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

AppDomainSetup ad2setup=新建 AppDomainSetup()

ad2setup.ConfigurationFile=@“配置 文件路径”


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