MSBuild для запуска юнит-тестов - PullRequest
2 голосов
/ 12 августа 2010

Я пытаюсь настроить CruiseControl .net для периодической сборки кода нашего репозитория и запуска тестов, включенных в решение.Я настроил получение кода с сервера SVN и сборочной части.Но я не могу запустить тесты на нем.MSBuild продолжает жаловаться, что.

ошибка MSB4057: целевой объект «Test» не существует в проекте.

Я также попытался запустить тесты через командную строку, чтобы увидетьесли это работает с той же ошибкой.Я использовал: MSBuild.exe TestProject.csproj / t: Test

Моя конфигурация примерно такая:

<tasks>
    <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
        <workingDirectory>C:\WorkingDir\build\MainProject</workingDirectory>                
        <projectFile>MainProject.csproj</projectFile>
        <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
        <targets>Build</targets>
        <timeout>900</timeout>
        <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
    </msbuild>
    <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
        <workingDirectory>C:\WorkingDir\build\TestProject</workingDirectory>                
        <projectFile>TestProject.csproj</projectFile>
        <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
        <targets>Test</targets>
        <timeout>900</timeout>
        <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
    </msbuild>  
    </tasks>

Буду признателен за любую подсказку в правильном направлении.

1 Ответ

3 голосов
/ 12 августа 2010

Вы не объяснили, какой тестовый фреймворк вы используете, что здесь довольно важно.

Для MSTest этот элемент вызова является частью TFS [поскольку элемент запуска является частью Visual Studio, поэтому Задача для запуска MSTest не может быть частью MSBuild, которая является частью .NET Framework - именно поэтому MSTest заставляет [в 2010 году, подмножество] Visual Studio быть установленным на вашем сервере сборки (здесь есть несколько хороших вопросов по этой теме)]

Для xUnit.net люди делают подобные вещи

Для NUnit есть задача, для которой вы можете предоставить список файлов.

Итог - добавляется пользовательская цель Test в файл .csproj, который запускает существенную задачу-оболочку MSBuild для вызова вашего тестового бегуна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...