[英]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.