Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

copying to teamcity's out directory before running unit tests

So my situation is that I finally finished configuring TeamCity for CI. I got it to run my unit tests with some friendly help on SO.

However, many unit tests fail because there needs to be a config file alongside the unittests.dll once it's built and ready to run.

I've written a simple Command Line step with:

copy %system.teamcity.build.checkoutDir%\xx.configfile <destination>

The destination is the problem, I need it to be the Out directory teamcity creates.

TC creates SYSTEM_<machinename> <datetime>\OUT. An example:

C:\TeamCity\buildAgent\temp\buildTmp\SYSTEM_GIDEON 2015-07-02 16_51_09\Out

In there is my unittests.dll and I want to copy my config file there. What environment var or (anything else) can I use in the command line script?

The (1) Build Tests is a Step then I want to run the (2) Copy Config Step Then (3) Run Tests. After step (1) I have that xxx\xxx\Out directory and I need that directory from some variable.

I'm using Teamcity 9.0.2

like image 479
gideon Avatar asked Nov 01 '22 00:11

gideon


1 Answers

Your problem is not to do with TeamCity I don't think, it's to do with the way that MSTest works. You need your .config file to be a DeploymentItem and have your tests deploy it to the directory that MSTest will run the tests in.

To be honest I'm surprised that you don't have this problem running locally, and it makes me think that you must be using some other test runner (like ReSharper) to run the tests if you have not seen this problem on your local machines.

like image 181
Sam Holder Avatar answered Nov 09 '22 07:11

Sam Holder