Red Gate forums :: View topic - How can you get a build to fail when the tests fail?
Return to www.red-gate.com RSS Feed Available

Search  | Usergroups |  Profile |  Messages |  Log in  Register 
Go to product documentation
SQL Test
SQL Test forum

How can you get a build to fail when the tests fail?

Search in SQL Test forum
Post new topic   Reply to topic
Jump to:  
Author Message
JackAce



Joined: 08 Jul 2011
Posts: 38

PostPosted: Sat Jul 14, 2012 7:42 pm    Post subject: How can you get a build to fail when the tests fail? Reply with quote

I am trying to use MSBuild and SQLCMD to run my tSQLt tests as part of the build/deploy process, but when MSBuild executes the tests, the command result is always a success (even when a test fails).


Code:


   <Target Name="Test">
      <Message Text="==================================================" />
      <Message Text="== Run tSQLt Tests" />
      <Message Text="==" />

      <Exec Command="&quot;$(SqlCmdPath)&quot; -Q &quot;EXEC tSQLt.RunAll&quot; -S localhost -d MyDb -E" />

      <Message Text="==================================================" />
   </Target>


Is there a way to get the sqlcmd command to fail when the tests fail?


Another question:
Can the tests produce an XML file that can be parsed and used for reporting on a CI server such as Jenkins or TeamCity?
Back to top
View user's profile Send private message
David Atkinson



Joined: 05 Dec 2005
Posts: 1114
Location: Twitter: @dtabase

PostPosted: Sat Jul 14, 2012 10:38 pm    Post subject: Reply with quote

Yes, this is possible as tSQLt can output an Ant JUnit XML Report, which can be consumed by CI tools. Rather than describe it here, I'll direct you to Dave Green's excellent article:

http://www.simple-talk.com/sql/sql-tools/using-sql-test-database-unit-testing-with-teamcity-continuous-integration/

Although the example uses TeamCity, this applies to all CI tools.

Let us know how you get on.

David Atkinson
Red Gate
Back to top
View user's profile Send private message Send e-mail
JackAce



Joined: 08 Jul 2011
Posts: 38

PostPosted: Sat Jul 14, 2012 11:07 pm    Post subject: Reply with quote

In case anyone else was wondering, I found the solution to the build failure problem. You can cause sqlcmd.exe to fail if you use the -b option

Code:

   <Target Name="Test">
      <Message Text="==================================================" />
      <Message Text="== Run tSQLt Tests" />
      <Message Text="==" />

      <Exec Command="&quot;$(SqlCmdPath)&quot; -Q &quot;EXEC tSQLt.RunAll&quot; -S localhost -d MyDb -b -E" />

      <Message Text="==================================================" />
   </Target>
Back to top
View user's profile Send private message
David Atkinson



Joined: 05 Dec 2005
Posts: 1114
Location: Twitter: @dtabase

PostPosted: Sat Jul 14, 2012 11:16 pm    Post subject: Reply with quote

Glad you got that working.

Did you get the integration with your CI tool working using TestResults.xml?

David
Back to top
View user's profile Send private message Send e-mail
JackAce



Joined: 08 Jul 2011
Posts: 38

PostPosted: Sat Jul 14, 2012 11:41 pm    Post subject: Re: Reply with quote

David Atkinson wrote:
Yes, this is possible as tSQLt can output an Ant JUnit XML Report, which can be consumed by CI tools. Rather than describe it here, I'll direct you to Dave Green's excellent article:

http://www.simple-talk.com/sql/sql-tools/using-sql-test-database-unit-testing-with-teamcity-continuous-integration/



Thanks, David. I've amended my scripts.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic All times are GMT + 1 Hour
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group