2010-05-27 4 views
4

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

ответ

2

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

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

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(); 

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

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

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

0

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

+0

Ну, эта команда в Visual Studio обе переупорядочивает 'using' директивы и удаляет те, которые, по его мнению, не нужны. –

+0

@Sarah: true. Но я никогда не видел, чтобы это делало ошибку и удаляло ту, которую я использовал. Это единственный способ разбить его. –

1

Это не имеет значения.

Лично я все еще проводил тесты перед выполнением любого кода.

+0

Посмотрите на человека, вот почему я спрашиваю: я просто параноик! Зачем вам снова запускать, если он будет создан? –

+1

С автоматизированными процессами сборки - любое изменение (переупорядочение не является исключением) приведет к тому, что новая сборка будет запущена, если вы будете использовать автоматическую сборку. Лично это хорошо. По крайней мере, вы не будете помечены как нарушение сборки. Кроме того, одно из преимуществ модульных тестов - позволить вам быть уверенными и, таким образом, лишить вас паранойи, когда вы совершаете свой код. Если повторные запущенные юнит-тесты удаляют эту паранойю, пойдите для нее - какой вред? ;) – Finglas

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^