организовать с помощью директив, перезапустить тесты? - PullRequest
4 голосов
/ 28 мая 2010

Прежде чем делать коммит, я предпочитаю запускать все сто с чем-то модульных тестов в моем C # Solution, так как они запускаются всего за пару минут. Однако, если я уже выполнил их все, все хорошо, и тогда я решил организовать директивы using в своем решении, действительно ли необходимо повторно запускать модульные тесты? У меня есть макрос, который просматривает все файлы в решении и запускает команду Visual Studio «Удалить и отсортировать» для каждого. Насколько я понимаю, до тех пор, пока все проекты строятся после изменения директив using, во время выполнения все должно быть хорошо. Это правильное мышление?

Ответы [ 3 ]

2 голосов
/ 28 мая 2010

Ну, это отчасти зависит от того, насколько вы доверяете функции «удалить и отсортировать». Насколько я знаю, порядок не имеет значения - но какие директивы присутствуют может иметь значение.

Например, предположим, у вас был этот метод расширения:

public static int Count<T>(this List<T> source)
{
    return 0;
}

Если бы это был тип в пространстве имен MyExtensions, и исходный код был бы таким:

using MyExtensions;
using System.Linq;

...
List<string> list = new List<string>();
int x = list.Count();

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

Теперь я лично верю, что «удаление и сортировка» на самом деле не приведет к такому изменению поведения, и для начала вам понадобится довольно хрупкий код, но я просто подумал, что упомяну, что «он все еще собирается потом» на самом деле недостаточно, чтобы гарантировать, что ваши тесты будут работать.

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

1 голос
/ 28 мая 2010

Это не будет иметь значения.

Лично я все равно запускал бы тесты до принятия какого-либо кода.

0 голосов
/ 28 мая 2010

Да. Перезапуск модульных тестов не требуется. Порядок директив using не имеет значения для компилятора.

...