在多种文化下运行NUnit 3测试

问题描述

就像this question一样,我需要以不同的文化来运行我的所有NUnit测试。我希望有一个属性可以让我指定区域性,然后依次对每种区域性进行测试。

似乎有一个详细记录的属性here,它允许您设置运行NUnit测试的区域性,但是不允许设置多个区域性。

链接问题的答案以及与NUnit 2相关的其他一些资源(例如herehere)中,此功能是NUnit 3的计划改进。

由于我找不到证据表明已实施该措施,因此任何人都可以回答这个问题...

是否可以采用现有的NUnit 3测试用例套件,并以一种整齐的格式自动在多个区域中运行它们?

我想我可以编写一个可以在IDE外部运行它们的应用程序脚本,但这会增加额外的开销。

我也不喜欢每次仅通过更改“ SetCulture”属性来复制和粘贴测试的想法(同样,我不想每次运行前都必须在现有夹具上手动更改它)。 >

解决方法

我知道,NUnit当前没有内置任何功能可以执行此操作,尽管这个想法已经提出了几次。 (例如,为控制台运行程序引入--set-culture标志。)

作为一种解决方法,可以在程序集级别应用SetCulture属性-因此您可能在编译符号下具有两个不同的程序集级SetCulture属性,然后两次构建测试程序集-每种区域性一次。例如

#if US_CULTURE
[assembly: SetCulture("en-US")]
#elif UK_CULTURE
[assembly: SetCulture("en-GB")]
#endif

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...