NUnit, тестирование против нескольких культур - PullRequest
6 голосов
/ 13 мая 2011

Используя NUnit, я хочу запустить все тесты в определенном проекте для нескольких культур.

Проект имеет дело с анализом данных, которые должны быть нейтральными по отношению к культуре, чтобы убедиться, что я хотел бы провести каждый тест для нескольких культур.

Текущее решение, которое у меня есть,

public abstract class FooTests {
    /* tests go here */
}

[TestFixture, SetCulture ("en-GB")] public class FooTestsEN : FooTests {}
[TestFixture, SetCulture ("pl-PL")] public class FooTestsPL : FooTests {}

В идеале, мне не нужно создавать эти классы, а вместо этого использовать что-то вроде:

[assembly: SetCulture ("en-GB")]
[assembly: SetCulture ("pl-PL")]

Ответы [ 3 ]

5 голосов
/ 14 мая 2011

К сожалению, сейчас это невозможно, но запланировано на будущее.

Вы также можете сделать это.

public class AllCultureTests
{
  private TestSomething() {...}

  [Test]
  [SetCulture("pl-PL")]
  public void ShouldDoSomethingInPoland()
  {
    TestSomething();
  }
}

Может быть, вы бы предпочли?

3 голосов
/ 13 июля 2017

NUnit SetCultureAttribute применяет одну культуру к тесту, несколько культур (пока) не поддерживаются.

Вы можете обойти это, используя TestCaseAttribute с кодами языка иустановка культуры вручную:

    [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"));
    }

Обратите внимание, что этот модульный тест не пройдёт для de и da - тестирование для разных культур действительно важно:)

1 голос
/ 21 сентября 2011

Если вы не против переключения, MbUnit уже почти пять лет имеет эту функцию .

. Вы можете применить атрибут MultipleCulture вуровни тестирования, крепежа и сборки.

...