Как можно игнорировать некоторые юнит-тесты, не снижая процент покрытия кода? - PullRequest
1 голос
/ 27 сентября 2011

У меня есть один класс, который общается с базой данных.

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

Когда я ставлю атрибут [Игнорировать], они не вызываются, но покрытие кода резко уменьшается.

Есть ли способ сохранить эти тесты, но не запускать их автоматически на машине сборки таким образом, что тот факт, что они игнорируются, делает не влияет на процент покрытия кода?

Ответы [ 4 ]

0 голосов
/ 27 сентября 2011

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

0 голосов
/ 27 сентября 2011

То, что вы просите, кажется, не имеет смысла.Покрытие кода измеряется путем выполнения ваших тестов и регистрации, какие операторы / условия и т. Д. Выполняются.Если вы отключите свои тесты, ничего не будет выполнено, и охват кода снизится.

0 голосов
/ 27 сентября 2011

Я не знаю, применимо ли это к вашей ситуации. Но спонтанно я имею в виду установку, в которой у вас есть два файла решения (.sln), один с модульными / интеграционными тестами и один без. Оба решения используют один и тот же код и файлы проекта, за исключением того, что ваше решение для разработки / тестирования включает в себя ваши модульные тесты (которые создаются и запускаются во время компиляции), а другое решение - нет. Оба решения должны находиться под контролем исходного кода, но сервер сборки собирает только одно без модульных тестов.

Этот тип установки не должен требовать изменения существующего кода (слишком много). Который я предпочел бы переписать код, чтобы соответствовать вашей тестовой настройке.

0 голосов
/ 27 сентября 2011

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

...