В основном я хотел бы сказать MSTest выполнять немного кода перед запуском в ряд тестовых прогонов, по существу что я хотел бы сделать, то же самое как всовывающий некоторый код Main()
.
Причина, которую я хотел бы сделать, это - то, что я хотел бы сделать некоторый вход с log4net во время моих выполнений интеграционного теста. Я не могу просто использовать log4net.Config.XmlConfigurator
атрибут сборки, так как к тому времени, когда он читает его в моей опытной сборке, которую это уже назвало LoggerManager
. Документация рекомендует настроить log4net явно в точке входа кода - но где это находится в моих тестах?
Я должен смочь запустить свои тесты в TestDriven.NET и бегуне MSTest.
FWIW, вы можете использовать атрибут AssemblyInitialize для запуска кода перед выполнением всех модульных тестов в сборке:
[TestClass]
public class SetupAssemblyInitializer
{
[AssemblyInitialize]
public static void AssemblyInit(TestContext context)
{
// Initalization code goes here
}
}
Если у вас есть более одной сборки модульного теста, я не знаю ничего, что охватывает более одной сборки.
Насколько мне известно, это максимально близко к главному эквиваленту.
Обратите внимание, что метод AssemblyInitialize
-decorated должен быть в TestClass
-decorated классе, который содержит по крайней мере один TestMethod
-decorated метод, иначе он не будет выполнен!
Я вижу это в заголовке MS Test.
// Use ClassInitialize to run code before running the first test in the class
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext) { }
Это будет выполняться перед тестами в одном классе.
Похоже, вы хотите запустить что-то перед всеми тестами.
В конфигурации тестового запуска также есть опция сценария установки.