簡體   English   中英

使用mstest,我可以針對我支持的每種語言運行單元測試套件嗎?

[英]With mstest, can I run my unit test suite against each of my supported languages?

我們使用.resx文件將我們的應用程序國際化為多種語言。 我們的自動化單元測試在他們自己的程序集中,我們從CI(Jenkins)中的命令行運行該項目的mstest,如下所示:

mstest.exe /testcontainer:unittests.dll / category:“!TemporaryExclude”/resultsfile:UnitTests.trx

我們發現如果在設置為我們的非英語支持文化的機器上運行,特定單元測試將失敗的情況。 我們希望我們的CI對每種文化進行單元測試,包括當前的en-us。 這一定是其他人遇到的問題,但我還沒有發現任何問題。

有沒有辦法針對特定文化運行mstest? 我沒有在mstest.exe的命令行文檔中看到任何內容

我知道我可以在我的測試中指定Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture,但我不希望我們團隊中的開發人員必須復制粘貼他們的測試重復項,每個文化一個。 對他們來說這將是額外的工作,並且只有文化不同的副本才難以維護並且容易出錯。

我想知道從TestMethodAttribute派生一個類並讓它循環遍歷我的所有語言資源DLL,每個運行一次測試代碼,但Visual Studio告訴我:

錯誤2'ClassToExtendTestMethodAttribute':無法從密封類型'Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute'派生

對於TestClassAttribute也是如此。

一個想法可能是從TestInitialize方法中的配置文件中讀取文化,以便與Thread.CurrentThread.CurrentCulture一起使用,並將此方法放入基本單元測試類(所有其他測試類應該派生自)。 如果這樣做,你可以在循環中從批處理文件中調用mstest並在每一步之后更改配置文件(例如從“en-us”到“fr-FR”)。

或者,這是一個指向“ 單元測試可擴展性示例 ”的指針,我沒有使用它,但可能會對您有所幫助。

暫無
暫無

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

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