NUnit, TestDriven.Net: дублирующие результаты теста с частичными тестовыми классами - PullRequest
6 голосов
/ 19 января 2010

Я только что обнаружил, что получаю вдвое больше тестов, чем я должен был получить.Обнаружил его, когда тест прошел, и я получил два одинаковых теста.Тот же тест, все то же самое.Меня это немного смутило, но я смог сузить его до определенного тестового класса, который был частичным классом.

Причина, по которой это был частичный класс, заключалась в том, что я разделил тестовый класс на две, просто чтобы сделать егонемного более чистый.У тестируемого класса был определенный метод, который требовал большого количества тестов, и я подумал, что было бы чётко иметь их в отдельном файле.Но поскольку использовался один или два вспомогательных метода, я решил, что можно просто сделать класс частичным, чтобы оба файла имели доступ к этим методам.

Среда тестирования - NUnit, и тесты выполнялись с использованием TestDriven.Net.,Запускал тесты как внутри одного метода тестирования (сообщалось о двух тестах, пройденных вместо одного), так и в классе (получил вдвое больше тестов), а также во всем тестовом проекте.

Удалось устранить проблемусделав классы не частичными и просто дублируя эти крошечные вспомогательные методы (может переместить их в отдельный вспомогательный класс или что-то позднее).

Теперь ... с какой стати это происходит?Я думал, что частичные классы были скомпилированы в один класс?Это проблема с частичными классами вообще, NUnit, Test-Driven.net или с чем-то совершенно другим?

1 Ответ

3 голосов
/ 19 января 2010

Возможно, вы поместили атрибут [TestFixture] в оба файла частичного класса. Это приведет к тому, что TestFixture будет дважды выдано в определении класса IL, и NUnit дважды выполнит один и тот же тестовый код. Вы должны добавить [TestFixture] в один из файлов только для вашего частичного класса.

...