由于TeamCity正在构建错误的测试程序集,因此无法运行MSpec测试

时间:2011-04-07 08:21:34

标签: teamcity mspec

我正在尝试在构建解决方案后运行MSpec测试。所以,我的MSBuild脚本设置如下:

<?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
      <Target Name="Build">
        <MSBuild Projects="../MyApplication.Web.sln" />
        <Message Text="Building solution" Importance="high" />
      </Target>

      <Target Name="TeamCity" DependsOnTargets="Build">
        <Message Text="Before executing MSpec command" Importance="high" />
        <Exec Command="mspec.exe ..\Hosts\MyApplication.Hosts.Web.Specs\bin\MyApplication.Hosts.Web.Specs.dll --teamcity" />
        <Message Text="Running MSpec" Importance="high" />  
      </Target>
    </Project>

然后我将“TeamCity”称为TeamCity中的目标。当命令

  

“mspec.exe   .. \主机\ MyApplication.Hosts.Web.Specs \ BIN \ MyApplication.Hosts.Web.Specs.dll   --teamcity“

执行

,我收到以下错误:

  

C:\ TeamCity \ buildAgent \ work \ 117e3aa3bb76aad0 \ Build&gt; mspec .. \ Hosts \ Application.Hos   ts.Web.Specs \ BIN \ Application.Hosts.Web.Specs.dll   无法加载文件或程序集'file:/// C:\ TeamCity \ buildAgent \ work \ 117e3aa3bb7   6aad0 \ Hosts \ Application.Hosts.Web.Specs \ bin \ Application.Hosts.Web.Specs.dll'或on   它的依赖关系。尝试加载具有不正确f的程序   ORMAT。

在做了一些调查之后,我发现本地机器和构建服务器上的“MyApplication.Hosts.Web.Specs.dll”虽然都是15kb,但却有不同的md5校验和。这可能解释了为什么执行MSpec测试会导致错误。实际上,如果我将dll从本地计算机复制到构建服务器,则测试将运行。

所以我的问题是,是否有其他人遇到了同样的问题,即构建“严重”的程序集?

CNC中 本地我将解决方案构建为64位应用程序,但在TeamCity中,我将其构建为32位(x86)。这可能是问题吗?

PS:我尝试在TeamCity中将其构建为64位应用程序,但是我得到了其他错误,我暂时忽略了这些错误。但是,为了完整起见,这里是:

Client\ProdMaster.SLCharts\ProdMaster.SLCharts.csproj
[15:11:22]: [Client\ProdMaster.SLCharts\ProdMaster.SLCharts.csproj] GetFrameworkPaths
[15:11:22]: [GetFrameworkPaths] ValidateSilverlightFrameworkPaths
[15:11:22]: [ValidateSilverlightFrameworkPaths] C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(104, 9): The Silverlight 4 SDK is not installed.

1 个答案:

答案 0 :(得分:2)

大卫,

  • 您是哪个版本的MSpec 运行?如果你还在0.3.0.0我 鼓励您切换到most recent 0.4.9.0 build。这个构建 包含mspec.exe(AnyCPU) as mspec-x86.exe(x86)。你应该 使用匹配构建的可执行文件 环境/架构。

  • 请跟踪装配 与Fustion日志查看器绑定 - 它是Windows SDK的一部分。该 错误消息“尝试了 加载程序不正确 格式。“表示MSpec能够 找到规范DLL,但目标 架构之间不匹配 MSpec可执行文件和规范 组装