首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tSQLt的成功退出代码是什么

tSQLt的成功退出代码是什么
EN

Stack Overflow用户
提问于 2012-12-06 23:55:30
回答 1查看 790关注 0票数 1

我正在尝试将tSQLt / SQLTest与CruiseControl.NET集成,我的测试正在运行,并且我已经编写了xsl文件来显示结果,但是我需要知道如果任何测试失败,如何将构建标记为失败。

我的CCNet exec是:

代码语言:javascript
运行
复制
<exec executable="$(sqlCmdPath)">
    <description>Run Unit Tests</description>
    <buildArgs>-E -d MyDatabase 
       -i "\CruiseControlProjects\Configuration\CI_SQL\RunTests.sql"
    </buildArgs>
    <baseDirectory>\Artifacts\MyDatabase</baseDirectory>
    <successExitCodes>0,63</successExitCodes>
</exec>

RunTests.sql:

代码语言:javascript
运行
复制
IF EXISTS (SELECT * FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'[tSQLt].[RunAll]')
AND TYPE IN (N'P',N'PC'))
BEGIN
EXECUTE [tSQLt].[RunAll]
END

测试已运行,我还有一个后续任务,该任务生成xml格式的结果,然后将结果合并到构建日志中:

代码语言:javascript
运行
复制
<exec executable="$(sqlCmdPath)">
    <description>Get Unit Tests</description>
    <buildArgs>-E -b -d MyDatabase -h-1 -y0 -I 
       -i "\CruiseControlProjects\Configuration\CI_SQL\GetTestResults.sql" 
       -o "\CruiseControlProjects\Configuration\CI_SQL\Results\TestResults.xml"
    </buildArgs>
    <baseDirectory>\Artifacts\MDatabase</baseDirectory>
    <successExitCodes>0,63</successExitCodes>
</exec>

那么,如何让整个构建失败呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-07 15:23:22

如果您对sqlcmd使用-b参数,您应该会发现当批处理失败时,它将抛出一个带有非零代码的错误(如果tSQLt至少有一次测试失败,就会发生这种情况)。

然而,我有一个潜在的建议可以探索。如果您可以在Cruise Control中加载XML文件,那么就可以加载测试,因为XML文件与nUnit测试输出文件的格式相同。(注意-我在TeamCity和Jenkins上使用过这种方法,但没有在Cruise Control上尝试过)。这将把测试视为测试,而不是“全有或全无”的方法,并使您能够跟踪哪些测试反复失败。

希望这能有所帮助,

戴夫。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13747453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档