标签: teamcity-5.1

TeamCity命令行构建运行器:如何使构建失败?

我们使用TeamCity的命令行构建运行器来调用bat文件.bat文件通过调用Visual Studio 2008的"devenv.exe"构建我们的解决方案,然后执行单元测试并创建正确的文件夹结构.

如果对devenv的调用失败并使TeamCity意识到构建失败,我们想要做的是停止执行bat文件.我们可以通过检查ErrorLevel(如果构建失败时为1)来捕获失败的devenv调用,并且我们可以在那时退出我们的bat文件.但是我们怎么能告诉TeamCity构建失败了呢?

这是我们尝试过的:

call "build.bat"
IF ERRORLEVEL 1 EXIT /B 1
Run Code Online (Sandbox Code Playgroud)

但是TeamCity无法识别我们的退出代码.相反,构建日志如下所示:

[08:52:12]: ========== Build: 28 succeeded or up-to-date, 1 failed, 0 skipped ==========
[08:52:13]: C:\_work\BuildAgent\work\bcd14331c8d63b39\Build>IF ERRORLEVEL 1 EXIT /B 1 
[08:52:13]: Process exited with code 0
[08:52:13]: Publishing artifacts
[08:52:13]: [Publishing artifacts] Paths to publish: [build/install, teamcity-info.xml]
[08:52:13]: [Publishing artifacts] Artifacts path build/install not found
[08:52:13]: [Publishing artifacts] Publishing files
[08:52:13]: Build finished
Run Code Online (Sandbox Code Playgroud)

因此,TeamCity将报告构建成功.我们该如何解决这个问题?

解:

TeamCity提供了一种称为服务消息的机制,可用于处理这种情况.我已将构建脚本更新为如下所示:

IF %ERRORLEVEL% == 0 GOTO …
Run Code Online (Sandbox Code Playgroud)

teamcity command-line visual-studio-2008 teamcity-5.1

27
推荐指数
1
解决办法
8631
查看次数

从Team city运行NUnit测试

我已成功设法让我们的TeamCity Server上的每个构建都运行MSTests.

我有几个使用NUnit的项目,所以希望让TeamCity运行NUnit测试就像运行MSTests一样简单:

Team City中的MS测试设置

因此,当我尝试为我的NUnit测试做同样的事情时,测试选项卡在Build完成时不显示,所以我猜它没有运行我的测试.

Team City中的Nunit测试设置

有谁知道我做错了什么?

不确定这是否有帮助,但这是来自构建日志:

[Project "AssemblyName.proj.teamcity.patch.tcprojx" (Build;TeamCity_Generated_NUnitTests target(s)):] C:\Program Files\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe "@@" "C:\Program Files\TeamCity\buildAgent\temp\buildTmp\tmp2867.tmp"
[13:22:57]: Start TeamCity NUnit Test Runner
[13:22:59]: Build finished
Run Code Online (Sandbox Code Playgroud)

这就像它启动nunit build runner,然后停止?

谢谢

戴夫

teamcity nunit teamcity-5.1

8
推荐指数
1
解决办法
1万
查看次数

排除teamcity工件中的文件类型

我正准备第一次自己设置teamcity.我不得不说,在很多方面非常好看和简单.但是,我有一个问题,我无法解决并找到任何相关信息.

当我想发布我的工件时,我想要排除一些文件类型.

例:

%system.agent.work.dir%\trunk\Source\Projects\Webproject.Web/Controllers => Webproject.Web/Controllers
Run Code Online (Sandbox Code Playgroud)

但是,我不想复制文件夹中的所有.cs文件.我只需要文件夹.是否可以只复制文件夹而不是内容,然后复制我需要的内容?或者,如果我复制目录,我可以排除文件吗?

teamcity teamcity-5.1

5
推荐指数
1
解决办法
2438
查看次数

如何将代码覆盖率阈值设置为TeamCity中的高水位线?

我有一个TeamCity构建,可以捕获单元测试的代码覆盖率.我还为构建成功的最小代码覆盖定义了一个环境变量,该工作正常,但我不想手动维护此阈值.我的问题是,是否存在一种方法(在TeamCity之外的某个地方发布代码覆盖率统计数据,然后读取上次成功构建的结果),以便在代码覆盖率提高时自动调整阈值,以确保在不允许的情况下实现稳定的改进倒退:)?

例如,假设当前代码覆盖率为20%(遗留应用程序),并且在编写新的单元测试时,代码覆盖率提高到25%.然后,有人检查新代码而不进行单元测试,代码覆盖率降至24%.我希望TeamCity失败,因为代码覆盖率从25%下降到24%.

teamcity code-coverage teamcity-5.1

5
推荐指数
2
解决办法
1369
查看次数

Python:获取当前目录中的所有exe文件并运行它们?

首先,这不是家庭作业,我迫切需要一个脚本来完成以下工作,我的问题是,我以前从来没有处理过python所以我几乎不知道如何使用它 - 我需要它通过命令行构建运行器在TeamCity中启动单元测试

我需要的是:

一个将运行脚本的*.bat文件

一个python脚本将:

  • 获取当前工作目录中的所有*_test.exe文件
  • 运行搜索结果的所有文件

最好的祝福

python teamcity-5.1

4
推荐指数
1
解决办法
2444
查看次数

升级到VS 2010后,Team City构建失败

我有一个项目,目前使用VS 2010(可能使用MSBUILD v4.0)在我的开发机器上愉快编译,但它在Team City中的MSBUILD v3.5下运行(在基于Win 2003服务器w/.NET 2的VM上运行) ,3.5和4安装).该项目新升级到2010年,现在CI构建失败了.我用Google搜索了这一切并尝试了一切显而易见的事情(加上一些没有意义的事情)并且没有任何影响结果.

该项目失败,出现一系列错误,如下所示:

error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

解决方案中有许多其他项目使用System.Core,System.Data.Linq和System.Xml.Linq,它们似乎都没有问题地编译.有问题的项目是一个Web应用程序,它的配置/ system.web/compilation/assemblies部分中包含以下设置:

    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Run Code Online (Sandbox Code Playgroud)

在同一个文件中加上以下内容:

<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>
  </compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)

有问题的项目是IIRC,我解决方案中唯一一个既是WebApplication也正在由PostSharp(v1.5)进行后期处理的项目.PostSharp在.csproj中配置如下:

<PropertyGroup>
  <DontImportPostSharp>True</DontImportPostSharp>
  <PostSharpUseCommandLine>True</PostSharpUseCommandLine>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" …
Run Code Online (Sandbox Code Playgroud)

postsharp visual-studio-2010 .net-3.5 teamcity-5.1

1
推荐指数
1
解决办法
1798
查看次数