NUnit을 사용하여 특정 프로젝트에서 모든 문화권 테스트를 실행하고 싶습니다.NUnit, 여러 문화에 대해 테스트하기
프로젝트는 여러 문화권에 대해 모든 테스트를 실행하기 위해 문화 중립적이어야하는 데이터 구문 분석을 다룹니다. Unfortunatelly이 지금 할 수 없습니다 만입니다
[assembly: SetCulture ("en-GB")]
[assembly: SetCulture ("pl-PL")]
NUnit을 사용하여 특정 프로젝트에서 모든 문화권 테스트를 실행하고 싶습니다.NUnit, 여러 문화에 대해 테스트하기
프로젝트는 여러 문화권에 대해 모든 테스트를 실행하기 위해 문화 중립적이어야하는 데이터 구문 분석을 다룹니다. Unfortunatelly이 지금 할 수 없습니다 만입니다
[assembly: SetCulture ("en-GB")]
[assembly: SetCulture ("pl-PL")]
:
내가 가진 현재의 솔루션은 내가 좋아하는 뭔가를이 클래스를 생성하고 대신 사용할 필요가 없습니다, 이상적으로
public abstract class FooTests {
/* tests go here */
}
[TestFixture, SetCulture ("en-GB")] public class FooTestsEN : FooTests {}
[TestFixture, SetCulture ("pl-PL")] public class FooTestsPL : FooTests {}
입니다 미래를 계획했다.
이 작업을 수행 할 수도 있습니다.
public class AllCultureTests
{
private TestSomething() {...}
[Test]
[SetCulture("pl-PL")]
public void ShouldDoSomethingInPoland()
{
TestSomething();
}
}
아마도 그게 좋을 것 같아요?
전환하는 데 문제가 없으면 MbUnit에 feature for nearly five years now이 포함되어 있습니다.
테스트, 설비 및 어셈블리 레벨에서 MultipleCulture
속성을 적용 할 수 있습니다.
NUnit의 SetCultureAttribute
은 하나의 문화를 테스트에 적용하면 여러 문화가 (아직) 지원되지 않습니다.
당신은 언어 코드와 TestCaseAttribute
를 사용하여 수동으로 문화를 설정하여이 문제를 해결할 수 있습니다 :이 단위 테스트가 de
및 da
실패 할 것
[Test]
[TestCase("de-DE")]
[TestCase("en-US")]
[TestCase("da-DK")]
public void YourTest(string cultureName)
{
var culture = CultureInfo.GetCultureInfo(cultureName);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
var date = new DateTime(2012, 10, 14);
string sut = date.ToString("dd/MM/yyyy");
Assert.That(sut, Is.EqualTo("14/10/2012"));
}
주 - 다른 문화에 대한 테스트는 정말 중요합니다 :)입니다
NUnit 3에 대한 계획 인 것 같습니다. - https://bugs.launchpad.net/nunit-3.0/+bug/1093505 –