Выполнение VSTS тестирует без mstest.exe

Существует три основных опции:

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

2), Если Список удобно отсортирован или это практично для сортировки его, и O (зарегистрируйте n), извлечение достаточно, вид и поиск.

3), Если O (n) извлечение достаточно быстр или если это невозможно управлять/поддерживать структурой данных или альтернативой, выполните итерации по Списку.

Перед написанием кода, более сложным, чем простое повторение по Списку, стоит продумать некоторые вопросы.

  • , Почему что-то другое необходимо? (Время) производительность? Элегантность? Пригодность для обслуживания? Повторное использование? Все они являются хорошо причинами, независимо или вместе, но они влияют на решение.

  • , Сколько контроля Вы имеете над рассматриваемой структурой данных? Можно ли влиять, как это создается? Управляемый позже?

  • , Каков жизненный цикл структуры данных (и основные объекты)? Это создается внезапно и никогда не изменяется или очень динамичное? Ваш код может контролировать (или даже измениться), его жизненный цикл?

  • там другие важные ограничения, такие как объем потребляемой памяти? Информация о вопросе дубликатов? И т.д.

14
задан Chris Missal 18 October 2009 в 19:19
поделиться

4 ответа

Вы можете выполнять тесты групповой системы (MSTest) в NUnit, если используете специальный надстройку NUnit, который распознает атрибуты теста MS (TestClass и т. Д.).

Exact Magic Software имеет "тестовый адаптер" с открытым исходным кодом , который может это сделать.

ОБНОВЛЕНИЕ: Я переработал адаптер Msts NUnit от Exact Magic для NUnit 2.5.2.

20
ответ дан 1 December 2019 в 12:52
поделиться

MSTests можно запускать без установки Visual Studio. См. how-do-i-use-mstest-without-visual-studio .

Я сделал это, чтобы я мог запускать свои тесты как часть моего процесса CI. (Я использую CC.NET для своего решения CI.)


Я нахожусь в аналогичной ситуации, поскольку я хочу использовать TestDriven.NET для получения статистики покрытия кода. Но у меня проблемы. Моя первая проблема заключается в том, что я использую атрибуты AssemblyInitialize для инициализации соединения с базой данных. Это не поддерживается NUnit, поэтому около половины моих тестов терпят неудачу, тогда как они нормально работают под MSTest.

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

0
ответ дан 1 December 2019 в 12:52
поделиться

Похоже, TeamCity просто использует Gallio для запуска тестов VS. Gallio, похоже, имеет интеграцию с msbuild и звучит идеально, но при более внимательном рассмотрении кажется, что для этого потребуется установка VS, как и MSTest, поскольку он, похоже, зависит от бывших MS:

The plugin enable condition was not satisfied: '${process:DEVENV.EXE} or 
${process:VSTESTHOST.EXE} or 
${process:QTAGENT.EXE} or 
${process:QTAGENT32.EXE} or 
${process:QTDCAGENT.EXE} or 
${process:QTDCAGENT32.EXE}'.
Host process exited with code: 0

При этом, похоже, что по крайней мере один человек получил он работает:

Christoph De Baene - Запуск MSTest без Visual Studio

1
ответ дан 1 December 2019 в 12:52
поделиться

Мы запускаем тесты VSTS с помощью msbuild TestToolsTask на сервере круиз-контроля. При этом не используется исполняемый файл MSTEST - условие, о котором вы просите, - но используются различные зависимости TFS.

Обратите внимание, что мы переносим тесты из тестовой среды VSTS для NUnit, в основном потому, что мы можем создавать расширения для NUnit для выполнения полезных задач.

0
ответ дан 1 December 2019 в 12:52
поделиться
Другие вопросы по тегам:

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