Переключение между Использованием NUnit и MSTest для поблочного тестирования

Аргументы командной строки разделяются пробелами, и rake рассматривает каждый аргумент как отдельную задачу. Это будет запускать задачи foo и bar:

rake foo bar

Если у вас есть:

rake task1[TARGET_1, 5]

, то у рейка будет два аргумента: task1[TARGET_1, и 5]. Попытка разобрать эти строки приводит к ошибке.

Чтобы получить правильный результат, вы можете удалить пробел, выйти из него или поместить аргумент в кавычки:

rake task1[TARGET_1,5]
rake task1[TARGET_1,\ 5]
rake "task1[TARGET_1, 5]"

Обратите внимание, что это поведение не зависит от типа rake, вот как аргументы командной строки работа в целом.

21
задан MagicAndi 2 April 2009 в 00:33
поделиться

2 ответа

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

#if NUNIT
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using ClassCleanup = NUnit.Framework.TestFixtureTearDownAttribute;
using ClassInitialize = NUnit.Framework.TestFixtureSetUpAttribute;
#else
using Microsoft.VisualStudio.TestTools.UnitTesting;
#endif

using NUnitAssert = NUnit.Framework.Assert;
using MsAssert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;

NUNIT во фрагменте кода обращается к сделанной на заказ конфигурации для решения. Можно создать это использование Менеджера конфигурации VS (через панель инструментов VS или свойства решения). Кроме того, необходимо заменить все экземпляры Тестового атрибута NUNIT на методах для использования атрибута MSTest TestMethod (или наоборот).

Править: Обновленный фрагмент кода выше для включения возможной фиксации для проблемы Jamie Ide указал в комментариях. Отметьте, мне не удалось протестировать эту фиксацию. Обновленный фрагмент кода взят из комментария Simon на этом сообщении в блоге.

24
ответ дан 17 October 2019 в 01:13
поделиться

У Вас есть соединение существующих тестов? В противном случае или Вы не возражаете преобразовывать существующий MSTests, я стандартизировал бы на NUnit. Я сильно предпочитаю NUnit по MSTest; это быстрее, и это не вынуждает Вас иметь ерунду TestContext в своих тестовых классах. Это также более совместимо с серверами CI.

1
ответ дан 17 October 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: