2009-06-02 69 views

回答

7

目前最簡單的方法就是執行它。

<Target Name="RunSpecs"> 
    <PropertyGroup> 
     <MSpecCommand> 
     lib\machine\specifications\Machine.Specifications.ConsoleRunner.exe $(AdditionalSettings) path\to\your\project\bin\Debug\Your.Project.Specs.dll path\to\your\other\project\bin\Debug\Your.Other.Project.dll 
     </MSpecCommand> 
    </PropertyGroup> 
    <Message Importance="high" Text="Running Specs with this command: $(MSpecCommand)"/> 
    <Exec Command="$(MSpecCommand)" /> 
    </Target> 

編輯:通知其他設置,你可以調用目標是這樣的:

<MSBuild Projects="yourmsbuild.msbuild" Targets="RunSpecs" Properties="AdditionalSettings=-s -t -i &quot;web&quot; --html Specs\Specs.html"/> 

如果傳遞--teamcity作爲參數,它輸出的TeamCity特定的日誌數據,這樣的TeamCity將跟蹤你的測試。

Machine.Specifications 
Copyright (C) 2007, 2008 

Usage: mspec-runner.exe [options] <assemblies> 
Options: 
    -i, --include  Executes all specifications in contexts with these comma delimited tags. Ex. -i "foo,bar,foo_bar" 
    -x, --exclude  Exclude specifications in contexts with these comma delimited tags. Ex. -x "foo,bar,foo_bar" 
    -t, --timeinfo Shows time-related information in HTML output 
    -s, --silent  Suppress console output 
    --teamcity  Reporting for TeamCity CI integration. 
    --html <PATH>  Outputs an HTML file(s) to path, one-per-assembly w/ index.html (if directory, otherwise all are in 
one file) 
    -h, --help  Shows this help message 
+0

請注意,當您使用NAnt進行此操作時,請使用arg line =「assembly1 assembly2」而不是arg值(否則您會得到一個非常不明顯的錯誤) – Neal 2009-10-20 02:00:10