Вариант Noshadow для nunit-консоли - PullRequest
6 голосов
/ 06 января 2010

У меня следующий вопрос: Каковы преимущества и недостатки запуска nunit-console с параметром / noshadow? Ваши комментарии будут очень полезны Спасибо

Ответы [ 3 ]

4 голосов
/ 26 сентября 2011

Если вам случится полагаться на что-то, что использует местоположение файла в ваших тестах, скажем, для какого-то любопытного процесса загрузки сборки, или просто для чего-то простого, например Assembly.GetExecutingAssembly (). Location, то вы, вероятно, столкнетесь с проблемами, потому что NUnit скопировал ваш файл в другое место, отличное от места сборки.

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

4 голосов
/ 07 января 2010

Основная проблема, которую я обнаружил с / noshadow, заключается в том, что он мешает вашему проекту собираться, поскольку NUnit теперь вынужден использовать и блокировать вашу DLL. Если вы оставите эту опцию отключенной, то NUnit создаст копию вашей DLL.

Если вы пытаетесь практиковать TDD и постоянно строите проект в цикле Red, Green, Refactor, то вы не можете легко использовать / noshadow. Вы получите сообщение об ошибке типа:

Процесс не может получить доступ к файлу 'bin \ Debug \ calculator.dll', поскольку он используется другим процессом.

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

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

0 голосов
/ 04 октября 2016

Быстрое предупреждение, плагин Gradle для Nunit изменил способ задания параметров теней. Мне потребовалось некоторое время, чтобы найти это, поэтому публикация здесь на случай, если это может помочь кому-то еще.

noShadow заменяется shadowCopy и по умолчанию имеет значение false, то есть имя изменилось, и смысл / направление его противоположны. Это было сделано, по-видимому, чтобы более точно соответствовать тому, что делает Nunit 3. Вы можете прочитать подробности об этом в плагине changlog на https://github.com/Ullink/gradle-nunit-plugin/blob/master/CHANGELOG.md

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...