Узнайте, какой модульный тест терпит неудачу в зависимости от другого

У нас есть ~22 000 юнит-тестов. Теперь два из них терпят неудачу при выполнении вместе с другими тестами. Они проходят при беге в одиночку. Сейчас я ищу автоматизированный анализ, чтобы сузить тесты, чтобы воспроизвести проблему.

Я думаю, что должно быть возможно найти решение с подходом «разделяй и властвуй». Запустите несколько модульных тестов, а затем запустите соответствующий. Выясните, терпит ли он неудачу или проходит. Мы надеемся, что перезапуск процесса модульного тестирования должен устранить причину, если предположить, что она не связана с файлом или базой данных.

Это требования:

  • Поддерживает .NET/С#
  • Поддерживает тесты MSTest и NUnit.
  • работает на виндовс 7 и 10
  • бесплатно для коммерческого использования
  • работает в автономном режиме, т. е. на компьютере разработчика, а не в облаке
Разделяй и властвуй может сработать. Это не может быть. Представьте, что тест T1 не проходит, когда T77 и T952 выполняются по порядку в наборе T2-T1000. Схема «разделяй и властвуй» может разделить T77 на группу T2-T500 и поместить T952 в группу T501-T999... и ни одна из подгрупп при выполнении сама по себе не покажет сбой. Теоретически вам, возможно, придется идентифицировать произвольное подмножество. Для N тестов это 2^N возможных подмножеств; для 1000 тестов это 2 ^ 1000, что намного больше, чем количество протонов в видимой Вселенной.
.... теперь вы все еще можете попробовать схему «разделяй и властвуй» и надеюсь, что у вас не будет сложных зависимостей, потому что ваши тесты должны быть независимыми.
@IraBaxter: мне не нужны все протоны одновременно. Я могу повторно использовать электроны с течением времени.

Ответы (1)

Я и моя команда используем изолятор Typemock. Он поддерживает .Net framework, MSTest, Nunit и Windows. Вы также можете запустить его на машине разработчика. Мы используем платную версию, которая, я думаю, сможет вам помочь. Есть бесплатная версия, хотя я не уверен, что она удовлетворит ваши потребности.