Search code examples
c#.netnunitcultureinfo

How to use custom CultureInfo in NUnit?


I want tests to use custom CultureInfo.

I created my CultureInfo and set this to TestExecutionContext.CurrentContext.CurrentCulture property. But it doesn't work. Tests are still using default culture.

[OneTimeSetUp]
public async Task OneTimeSetUp() {
    var culture = new CultureInfo( CultureInfo.InvariantCulture.Name );
    culture.DateTimeFormat.LongTimePattern = "HH:mm:ss:fff";
    TestExecutionContext.CurrentContext.CurrentCulture = culture;

    await Task.Delay( 1 );
}

[Test]
public void Test() {
    TestContext.WriteLine( TestExecutionContext.CurrentContext.CurrentCulture.EnglishName ); // Russian (Ukraine)
    TestContext.WriteLine( CultureInfo.CurrentCulture.EnglishName ); // Russian (Ukraine)
    TestContext.WriteLine( Thread.CurrentThread.CurrentCulture.EnglishName );
}

How can I do it?

Update: It doesn't work only for async OneTimeSetUp methods.


Solution

  • One can set up Thread.CurrentThread.CurrentCulture only in not async OneTimeSetUp methods.