MbUnit не может распознать тестовые сборки, скомпилированные с помощью MSBuild в Windows Server 2003.

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

Вопрос

Недавно я установил 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 trunk src proj customer customeruntests bin debug company.customerunittests.dll [exec] Готово построение проект "C: dev proj. 1 Trunk SRC Proj Customer CustomerUnittests Company.CustomerUnittests.csproj "(Пересмотреть цель (ы)).Exec] Build удалось.exec] "c: dev proj3.1 trunk src proj customer customerUnittests company.customerunittests.csproj" (цель перестройка) (1) ->

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

Дело в том, что в конце выходных данных NAnt следующее:

mbunit-тесты:MBUNIT] MBUNIT 2.4.2.355 Test Runner [MBUNIT] Нет тестовых сборок, не обнаруженных в тесте

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

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

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

Надеюсь, кто-то имеет представление об этом.

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

Решение

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

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

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

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

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

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

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