簡體   English   中英

是否可以在TestCases和Microsoft Test Manager中使用.testsettings文件?

[英]Is there an alternative for using a .testsettings file with TestCases and Microsoft Test Manager?

我們這里有一個特殊情況,這導致我們使用TFS 2012在新創建的實驗室環境中自動測試失敗。

我們總是有很多測試DAL代碼的“單元”測試,這些代碼又使用企業庫數據應用程序塊對數據庫執行操作。 該設置是在幾年前進行的,以使我們的客戶可以選擇SqlServer或Oracle數據庫以及我們的產品,從而利用DatabaseFactory類以及entlib.data中所有支持的通用接口和類。 我之所以這樣說“單元”,是因為它們實際上不是純粹的單元測試,而是集成的,因為它們需要一個真正的數據庫才能工作。

為了針對兩個數據庫測試相同的SQL代碼,我們在TFS項目分支的“資源”文件夾中維護兩個單獨的.config文件,它們指向我們的測試數據庫:

  • Resources\\SqlServer\\ConnectionStrings.config (特定於SqlServer的連接字符串)
  • Resources\\Oracle\\ConnectionStrings.config (Oracle特定的連接字符串)

在根Resources文件夾中,有兩個隨附的.testsettings文件,它們負責部署特定於每個數據庫的文件:

  • Resources\\SqlServer.testsettings (用於部署SqlServer \\ ConnectionStrings.config文件)
  • Resources\\Oracle.testsettings (用於部署Oracle \\ ConnectionStrings.config文件)

由於整個結構都在源代碼控制中,因此測試設置能夠使用相對路徑查找.config文件,從而使我們能夠測試所有內容,而無需手動設置參數。 在devs機器上,我們總是在運行測試時選擇SqlServer.testsettings文件,這樣,在簽入代碼之前,無需安裝整個oracle環境來驗證其更改。 驗證的Oracle端始終發生在我們的構建過程中,在該過程中,我們實際上對每種方法進行了兩次測試:首先使用開發人員使用的相同SqlServer.testsettings ,然后使用Oracle.testsettings

這樣,我們可以設置測試程序集的app.configs來將connectionStrings節點重定向到外部文件,如下所示:

<configuration>
  <connectionStrings configSource="ConnectionStrings.config"/>
  ...

運行測試時,mstest會根據用來啟動運行的.testsettings將足夠的ConnectionStrings.config文件復制到測試的工作文件夾中。

直到今天,它一直運行良好,直到我發現通過Microsoft測試管理器啟動的測試都忽略了Visual Studio .testsettings文件 現在,我試圖在我們的實驗室環境中運行這些相同的測試,但是未部署ConnectionStrings.config文件(可以理解),並且測試失敗。

在不使用.testsettings文件的情況下,如何實現這一目標? 在嘗試在新的x64構建服務器中正確設置oracle之后,我們在構建定義中禁用了Oracle測試。 現在,我們開始設置實驗室環境,我們考慮使用Oracle在其中的一台計算機上配置了整個系統,從而使我們能夠再次使用特定於oracle的連接字符串運行這些“單元測試”以驗證查詢。 同時,我們希望繼續使用SqlServer在本地以及在構建服務器上測試所有內容。

我認為在這種情況下無法使用[DeploymentItem] ,因為它用於靜態文件,而不是像我們當前設置那樣的不可選擇的動態文件。

我們可以在MTM / Lab Env中與TestCases一起使用的.testsettings部署過程是否等效? 在我們的TestPlan的Properties選項卡上,我可以看到Automated Runs -> Test Settings Runs- Automated Runs -> Test Settings選項,但這似乎只允許通過指定絕對路徑進行部署(這將在目標計算機上實際解析)。 有沒有一種方法可以在那里指定相對路徑,指向我們在TFS上簽入的ConnectionStrings.config文件? 也許我還缺少另一個選擇,也許使用了多個構建配置?

通過進入配置管理器並為活動解決方案配置下的“ 新建” ,為每種服務器類型創建單獨的構建配置 編輯項目文件,然后執行以下操作:

<PropertyGroup Condition="'$(Configuration)' == 'Oracle'">
  <appConfig>App.Oracle.Config</AppConfig>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'SQL'">
  <appConfig>App.SQL.Config</AppConfig>
</PropertyGroup>

然后,確保每個配置文件中都有正確的連接字符串。 然后,您可以配置TFS以使用那些構建配置進行構建。

有關使用PropertyGroup和ConditionMSBuild配置MSBuild項目屬性的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM