Ну, этот ответ опаздывает на миллионы лет, основываясь на исходной проблеме, но ...
Я обнаружил, что если тестовый агент (QTAgent32.exe) падает или умирает до завершения всей последовательности, тогда AssemblyInitialize (и, возможно, ClassInitialize и TestInitialize) будет вызван снова. Например, поместите это в функцию [AssemblyCleanup], и вы увидите, как происходит поведение:
Process p = AutotestShared.RunProcess("cmd", "/c taskkill /t /f /im QTAgent32.exe", true);
p.WaitForExit();
Итак, мораль этой истории такова: проверьте свои функции очистки, чтобы увидеть, есть ли какие-либо сбои / повреждения. Сбои во время очистки не отображаются в отчете об испытаниях, потому что утверждения прохождения / неудачи уже выполнены. Но проблемы, которые он вызывает, могут проявляться другими способами.