Действительно ли возможно выполнить код однажды весь тестовый прогон?

В основном я хотел бы сказать MSTest выполнять немного кода перед запуском в ряд тестовых прогонов, по существу что я хотел бы сделать, то же самое как всовывающий некоторый код Main().

Причина, которую я хотел бы сделать, это - то, что я хотел бы сделать некоторый вход с log4net во время моих выполнений интеграционного теста. Я не могу просто использовать log4net.Config.XmlConfigurator атрибут сборки, так как к тому времени, когда он читает его в моей опытной сборке, которую это уже назвало LoggerManager. Документация рекомендует настроить log4net явно в точке входа кода - но где это находится в моих тестах?

Я должен смочь запустить свои тесты в TestDriven.NET и бегуне MSTest.

101
задан Ohad Schneider 12 September 2018 в 10:51
поделиться

2 ответа

FWIW, вы можете использовать атрибут AssemblyInitialize для запуска кода перед выполнением всех модульных тестов в сборке:

[TestClass]
public class SetupAssemblyInitializer
{
    [AssemblyInitialize]
    public static void AssemblyInit(TestContext context)
    {
        // Initalization code goes here
    }
}

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

Насколько мне известно, это максимально близко к главному эквиваленту.

Обратите внимание, что метод AssemblyInitialize -decorated должен быть в TestClass -decorated классе, который содержит по крайней мере один TestMethod -decorated метод, иначе он не будет выполнен!

140
ответ дан 24 November 2019 в 04:40
поделиться

Я вижу это в заголовке MS Test.

// Use ClassInitialize to run code before running the first test in the class
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext) { }

Это будет выполняться перед тестами в одном классе.

Похоже, вы хотите запустить что-то перед всеми тестами.

В конфигурации тестового запуска также есть опция сценария установки.

12
ответ дан 24 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: