2011-04-11 64 views
4

我有點困惑mstest.exe對待測試DLL的app.config文件。mstest.exe如何處理測試DLL的配置文件?

實驗項目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不同。 我相信配置特定於應用程序域。 Mstest.exe將爲每個測試DLL創建一個應用程序域,並分別將其自己的配置文件加載到應用程序域中。

希望有人能給出更自信的解釋。


如何將配置文件加載到AppDomain中? - 加載配置文件中的應用程序域,使用:

AppDomainSetup ad2setup =新 AppDomainSetup();

ad2setup.ConfigurationFile = @「config file path」;

回答

1

是的,mstest.exe有一些特別的東西。它會將所有引用dll複製到另一個目錄並從那裏執行(我不確定爲什麼會這樣做,因爲像NCover這樣的工具只是從bin文件夾運行測試)。因此,除了DLL之外,您還必須配置任何您希望複製的內容。執行此操作的標準方法是通過在.testrunco​​nfig文件中指定部署項目。您可以通過轉到測試/編輯測試運行配置/部署來執行此操作。您可以使用「添加文件...」按鈕添加配置文件。