.NET - определение того, какие тестовые случаи охватывают метод - PullRequest
1 голос
/ 07 декабря 2011

Я хочу знать тесты, которые охватывают определенный метод.Однако NCover не предоставляет эту информацию.Я не хочу использовать VSTS, так как мой код не в TFS.Есть ли способ / инструмент, чтобы сделать это в .NET?

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

По сути, вам нужно запустить свой инструмент покрытия тестов один раз для каждого теста, создав вектор покрытия для этого теста. Если у вас есть сотни тестов, вы можете собрать покрытие для каждого теста отдельно.

Тогда, если вектор покрытия N охватывает метод, тест N вызвал это покрытие.

Я не знаю, может ли NCover, если / как NCover может пересекать ссылку обратно на диапазон строк, которые соответствуют исходному коду метода.

Для нашего C # Test Coverage Tool инструмент инструментария создает диапазоны номеров строк для каждой контрольной точки покрытия, и в начале каждого метода вставляется контрольная точка. Поэтому, если вы знаете номер строки метода в файле, вы можете технически определить точку покрытия входа, таким образом, диапазон строк, составляющий метод, и, следовательно, все тестовые точки покрытия в методе. С таким списком легко вычислить, попал ли тестовый вектор покрытия в эти точки. Таким образом, наш инструмент имеет информацию, необходимую для предоставления этих данных, хотя она недостаточно хорошо документирована. Вы могли бы попросите у нас дополнительную документацию или помощь в этом.

0 голосов
/ 08 декабря 2011

dotCover Я полагаю, что обеспечивает такую ​​поддержку в пользовательском интерфейсе, но я не уверен, доступна ли эта информация с компьютера сборки.

OpenCover имеетработа над одной из его вилок - это одна из первоначальных целей проекта, которая привела к тому, что дизайн OpenCover достиг этой цели с помощью одного прогона тестов - следите за обновлениями ...

Наконец, как упоминает Ира, вы можете запустить тест по отдельности и получить покрытие (используя большинство инструментов покрытия, таких как NCover , PartCover , OpenCover ,...) из одного теста, выполненного с помощью NUnit / MSTest (выберите инструмент для тестирования), однако вы также получите покрытие всего, что произошло в любых действиях по установке / демонтажу.

...