Вы испытываете запах модульного тестирования под названием Интерактивные тесты , описанный в превосходных xUnit Test Patterns . В частности, вы страдаете от Shared Fixture , который является другим способом сказать, что несколько ваших тестов используют одну и ту же общую базу данных и что они зависят от результатов предыдущих прогонов теста.
Это анти-шаблон, и его следует избегать любой ценой. Книга предлагает подробное руководство о том, как справиться с этой ситуацией.
Причина, по которой я начинаю описывать это, заключается в том, что именно по этой причине MSTest не гарантирует порядок тестов. Хотя порядок может показаться (полу) детерминированным, на него нельзя полагаться. Некоторые другие фреймворки модульного тестирования (на ум приходит xUnit.NET) даже заходят так далеко, что запускают тесты в случайном порядке каждый раз, когда вы запускаете набор тестов. MSTest не так уж и велик, но вы не можете заказать свои юнит-тесты.
Тем не менее, если вы используете Visual Studio Team Suite или (я полагаю) Team Test, существует тип теста, называемый Ordered Test . Вы можете использовать это, чтобы указать, что все тесты (включая модульные тесты) должны выполняться в определенном порядке.