Пытаясь использовать родинки с NUNIT. Получение "молей требует тестов, чтобы быть инструментом процесса"

StackOverflow https://stackoverflow.com/questions/3815946

  •  26-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать родинки с NUNIT и получаю следующие ошибки «Молью требует тестов, чтобы быть инструментом». Я также использую Visual Nunit в Visual Studio 2008, чтобы получить эту работу. Любая помощь приветствуется.

Это было полезно?

Решение

Это то, что я сделал, чтобы сделать родинки работать с NUNIT:

  1. Прихватить архив в C:\Program Files (x86)\Microsoft Moles\Documentation\moles.samples.zip и извлечь Moles Папка для решения.

  2. Построить NUnit Проект в Visual Studio (2008) для выпуска.

  3. Скопируйте выходные файлы Microsoft.Moles.NUnit.dll а также Microsoft.Moles.NUnit.xml от ...\Moles\NUnit\bin\Release\ к C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\. Отказ Я подозреваю, что этот шаг повторной компиляции NUNIT ADDIN вместо того, чтобы использовать один из загрузки и установки, был фактической точкой решения.

  4. В вашем VS-тестовом проекте убедитесь, что вы добавляете ссылку на C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\addins\Microsoft.Moles.NUnit.dll Вы только что скопировали.

  5. В вашем классе VS Test, отметьте метод теста с [Moled] атрибут (это потребует using Microsoft.Moles.Framework.NUnit). Как альтернатива, оберните его реализацию в пределах using (MolesContext.Create()) { ... } блок (это потребует using Microsoft.Moles.Framework).

  6. Из командной строки выключите Nunit Test Runner через бегун молей со следующими: "C:\Program Files (x86)\Microsoft Moles\bin\moles.runner.exe" "path\to\your\test\assembly.dll" /r:"C:\Program Files (x86)\NUnit 2.5.9\bin\net-2.0\nunit-console.exe" /x86 /args:"/domain=None"

Я обнаружил, что [Moled] атрибут не Работайте с [TESTCASE (...)], и он возвращает вас к незарегистрированному сценарию ошибок. Вместо этого using (MolesContext.Create()) Блок работает в этом случае тоже.

После того, как вы обнаружите, что все работает, вы можете рассмотреть время бегущих молей Runner в качестве внешнего инструмента в Visual Studio. Следует инструкциям в Бег моль с использованием кнопки NUNIT от Visual Studio, Обновление аргументов как на шаге 6.

Обратите внимание, что это было на 64-битной машине Windows 7, с NUNIT 2.5.9, Microsoft PEX и молью (x86) 0.94.51006.1. Рассмотрим ваши фактические папки для разных путей, версий и т. Д.

Другие советы

Я использую молью версию 0.94.51023.0.

Насколько я знаю, вам нужно добавить атрибут ниже в свой метод теста. Я использую структуру тестирования Visual Studio, не уверен, что оно то же самое с NUNIT, ET. al.

[HostType("Moles")]

Я также читал, что вы можете добавить [Moled] Атрибут методу испытаний, но это было недоступно для меня, и я не попал в почему, предполагая, что это старая документация - что, кажется, существует много с молями.

Обновлять: Согласно ссылочным руководстве молей, PG. 26, Moledattribute на метод испытаний - это путь с NUNIT. Вы должны зарегистрировать Microsoft.Moles.nunit.dll. Сборка с NUNIT, скопировав его на NUNIT Bin / Addins. папка.

Тогда вы бы добавили [Moled] атрибут методу теста.

[Test]
[Moled]
public void MyTest() {
  ...
}

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

[Test]
public void MyTest() {
  using (MolesContext()) {
  ...
  }
}

В дополнение к добавлению атрибута [HOSTTYPE («MOLES»)], вам нужно обернуть тестовый бегун с роговкой молей. Например:

moles.runner.exe MyAssembly.dll /r:nunit-console.exe

Роговые бегун, вероятно, находится в C: Program Files Microsoft Moles bin. Отказ Для использования, выполните:

moles.runner.exe help

SuperJos имеет самый правильный ответ и использует дополнение к «постоянному тестированию», вы можете получить Visual Studio, чтобы запустить Runner Runner Molls через бегун Console Nunit с этим пакетным файлом:

@echo off

rem Uses the Microsoft Moles runner and fires off the NUnit console runner so you can use Moles with NUnit.
rem This batch file is intended to be run from the Continuous Testing plugin in Visual Studio.
rem However, it can be used to run nunit tests from anyhere with Moles as long as the first parameter
rem is the assembly to be tested.  All other parameters are passed to NUnit.

set ASSEMBLY=%1
set MOLESPATH="c:\Program Files\Microsoft Moles\bin\moles.runner.exe"
set NUNITPATH="C:\Program Files\NUnit 2.5.10\bin\net-2.0\nunit-console.exe"
shift

if [%ASSEMBLY%]==[] goto HelpScreen
if [%1]==[] goto RunAlone
if [%2]==[] goto RunParams1 
if [%3]==[] goto RunParams2 
if [%4]==[] goto RunParams3 
if [%5]==[] goto RunParams4 
if [%6]==[] goto RunParams5 
if [%7]==[] goto RunParams6 
if [%8]==[] goto RunParams7 
if [%9]==[] goto RunParams8 
goto RunParams9
:HelpScreen
echo "The parameters are the same as NUnit Console runner with the exception that:
echo "   1) Only one assembly is supported and it must come first"
echo "   2) Only 9 extra parameters may be specified"
echo
%NUNITPATH% /?
exit 1
:RunAlone
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY%
goto ExitRunner
:RunParams1
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1
goto ExitRunner
:RunParams2
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2
goto ExitRunner
:RunParams3
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3
goto ExitRunner
:RunParams4
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4
goto ExitRunner
:RunParams5
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5
goto ExitRunner
:RunParams6
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6
goto ExitRunner
:RunParams7
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6 /args:%7
goto ExitRunner
:RunParams8
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6 /args:%7 /args:%8
goto ExitRunner
:RunParams9
%MOLESPATH% /r:%NUNITPATH% %ASSEMBLY% /args:%1 /args:%2 /args:%3 /args:%4 /args:%5 /args:%6 /args:%7 /args:%8 /args:%9
goto ExitRunner
:ExitRunner

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

Вы не можете запустить MS моль с NUNIT из Visual Studio. Вы должны либо использовать MSTEST (тесты на Visual Studio Builds), чтобы сделать это, либо вы можете запустить свои NUNIT Tests с молями из командной строки .see справочное руководство.

Возможная альтернатива: если он соответствует вашим потребностям, вы можете использовать Галлиос Платформа автоматизации для запуска всех видов тестовых каркасов (в вашем случае NUNIT и MSTEST) бок о бок ...

HTH! Томас

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top