Прежде, чем сделать фиксацию, я предпочитаю выполнять всю сотню чего-то модульные тесты в моем Решении C#, так как они только берут пару минут для выполнения. Однако, если я уже выполнил их всех, все хорошо, и затем я решаю организовать using
директивы в моем Решении, действительно необходимо повторно выполнить модульные тесты? У меня есть макрос, который проходит все файлы в Решении и выполняет команду 'Remove and Sort' Visual Studio на каждом. В моем понимании, пока все проекты все еще создают после using
директивы переезжаются, вещи должны быть прекрасными во времени выполнения, также. Эти корректные взгляды?
Ну, отчасти это зависит от того, насколько вы доверяете функции "удалить и отсортировать". Насколько я знаю, упорядочивание не имеет значения - но то, какие директивы присутствуют, может иметь значение.
Например, предположим, у вас есть такой метод расширения:
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 не изменило бы видимого вывода компилятора (т.е. ни ошибок, ни предупреждений), но изменило бы, какой метод расширения был вызван.
Теперь я лично верю, что "remove and sort" не сделает такого изменяющего поведение изменения, и у вас должен быть довольно хрупкий код для начала... но я просто решил упомянуть, что "он все еще собирается после этого" на самом деле не достаточно, чтобы гарантировать, что ваши тесты будут работать.
Лично я, вероятно, в любом случае запустил бы тесты снова, но в равной степени я был бы счастлив не делать этого, если бы это было необходимо. Как упоминает Финглас, если у вас есть система непрерывной сборки, предупреждающая вас об изменениях, последствия того, что вы иногда ошибаетесь, вероятно, не слишком катастрофичны. Конечно, если у вас тысячи разработчиков, которые будут испытывать неудобства из-за того, что сломанный код попадает на проверку, это совсем другое дело.
Да. Повторный запуск модульных тестов не требуется. Порядок с использованием директив
не имеет значения для компилятора.
Неважно.
Лично я бы все равно запускал тесты перед фиксацией любого кода.