首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mstest,我可以针对支持的每种语言运行单元测试套件吗?

使用mstest,我可以针对支持的每种语言运行单元测试套件吗?
EN

Stack Overflow用户
提问于 2012-06-22 16:11:22
回答 1查看 1.4K关注 0票数 5

我们使用.resx文件将我们的应用程序国际化为几种语言。我们的自动化单元测试在它们自己的程序集中,我们从CI (Jenkins)内部的命令行对该项目运行了最多的程序,如下所示:

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

我们已经发现,如果在一台机器上运行到非英语支持的区域性之一,那么特定的单元测试就会失败。我们希望让我们的CI针对每种文化运行单元测试,包括当前的en-us文化。这一定是别人遇到的问题,但我没有发现任何东西。

有没有一种方法来对抗特定的文化?,我在用于mstest.exe的命令行文档中什么都没看到

我知道我可以在我的测试中指定Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture,但是我不希望我们团队中的开发人员不得不复制他们测试的副本,每个文化一个。这对他们来说是额外的工作,只有文化才会有不同的重复,这是很难维护的,而且容易出错。

我想知道如何从TestMethodAttribute派生一个类,并让它遍历我所有的语言资源all,为每个类运行一次测试代码,但是Visual告诉我:

错误2 'ClassToExtendTestMethodAttribute':不能从密封类型'Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute‘派生

TestClassAttribute也一样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 16:45:08

一种想法可能是从TestInitialize方法中的一个配置文件中读取区域性,以便与Thread.CurrentThread.CurrentCulture一起使用,并将该方法放入一个基本单元测试类中(所有其他测试类都应该从中派生)。如果这样做了,您可以从循环中的批处理文件中调用mstest,并在每一步之后将配置文件(例如,从"en-us“更改为"fr-FR”)。

或者,这里有一个指向"单元测试扩展性样本“的指针,我没有使用它,但可能会帮助您。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11160062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档