MbUnit не может распознать тестовые сборки, скомпилированные с MSBuild на Windows Server 2003 - PullRequest
1 голос
/ 09 февраля 2009

Недавно я установил MbUnit версии 2.4.2.355 на наш сервер сборки, который работает через Cruise Control.NET и NAnt, на компьютере с Windows Server 2003 с установленным .NET Framework 3.5 SP1.

Я проверил каждый закоулок сценариев сборки, и отчет о выводе NAnt в CC.NET говорит мне, что тестовый проект работает нормально.

Это скрипт NAnt:

<target name="compiletests" description="Compiles unit tests separately">
    <exec program="${netframework.dir}\msbuild.exe">
        <arg line="C:\dev\PROJ3.1\trunk\src\PROJ\Customer\CustomerUnitTests\Company.CustomerUnitTests.csproj  /t:Rebuild /p:Configuration=Debug"></arg>
    </exec>
</target>

И вывод - это ff:

[exec] Company.CustomerUnitTests -> C: \ DEV \ PROJ.1 \ стволу \ SRC \ PROJ \ Клиент \ CustomerUnitTests \ Bin \ Debug \ Company.CustomerUnitTests.dll [exec] Готовый строительный проект "C: \ DEV \ PROJ.1 \ стволу \ SRC \ PROJ \ Клиент \ CustomerUnitTests \ Company.CustomerUnitTests.csproj" (Восстановить цель (и)). [exec] Build удалось. [ВЫПЛНЫ] "C: \ DEV \ PROJ3.1 \ стволу \ SRC \ PROJ \ Клиент \ CustomerUnitTests \ Company.CustomerUnitTests.csproj" (Восстановить цель) (1) ->

Это означает, что сборка модульного теста прошла успешно.

Дело в том, что в конце выходов NAnt это:

mbunit-тесты: [mbunit] MbUnit 2.4.2.355 тестовый бегун [mbunit] В тесте не найдены тестовые сборки

Я перешел на консоль и попытался использовать MbUnit.Cons.Exe для ручного тестирования скомпилированных сборок. Результаты пошли так:

  • Тестовые сборки, созданные с использованием моего компьютера с Windows XP SP3, были правильно распознаны, и тесты выполнялись правильно на моем компьютере и на любом другом компьютере разработчика.
  • Тестовые сборки, встроенные в сервер сборки под управлением Windows Server 2003, не распознавались как тестовые сборки; Я попытался скопировать эти файлы на мой компьютер с XP, но они тоже не были распознаны.

Мне вот интересно: в чем разница между тестовой сборкой и не тестовой сборкой? Я уверен, что это как-то связано с атрибутами Test и TestFixture, но в моем случае, почему сборки, скомпилированные на машинах WinXP, скомпилированы как тесты, а те, которые скомпилированы на машине Win2K3, не распознаются?

Надеюсь, у кого-то есть подсказка.

Ответы [ 2 ]

4 голосов
/ 21 февраля 2009

Прежде всего проверьте этот номер .
Если это не помогает, вам нужно проверить целевую платформу (свойства проекта, сборка) на «Любой процессор». После этого попробуйте открыть сборку, созданную на вашем компьютере сборки с помощью Reflector. Может быть сгенерированные файлы повреждены. А также, пожалуйста, попробуйте собрать проект вручную с использованием VS и загрузить сгенерированные тесты в MbUnit.

2 голосов
/ 09 февраля 2009

Нет принципиальной разницы в том, считается ли какая-либо конкретная сборка тестовой сборкой.

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

Кстати, эти проблемы были в основном решены в MbUnit v3.

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

...