Sunday, March 23, 2008

First touch TeamCity

Yesterday I tried TeamCity the first time, and also it's the first time for CI (continuous integration). My first impression about TeamCity is it's very easy to use. But if you're new to TeamCity and CI (like me), you need to read the description for each fields carefully and consult TeamCity document when creating a build configuration.

After creating a build configuration, I fire up VS2008, write a test, run the build but it fail with an error message "Could not locate the assembly nunit.framework...". I don't understand why. I added reference to NUnit assembly to test project. I could compile and run the test on my PC. But why TeamCity cannot locate NUnit assembly?

After some tries, I found that I can fix the problem by adding nunit.framework.dll to test project manually (create a "lib" folder, copy nunit.framework.dll into it, add reference to the "local" nunit.framework.dll and commit to server). Seems TeamCity cannot resolve dependencies if the assemblies were not in GAC.

OK, now I'm happy with adding NUnit assembly to project manually. But it will better if TeamCity can resolve it for me.

And one thing maybe you will interested in, JetBrains is now developing their own issues tracker. I imagine that someday when I go to office I will fire up my favorite IDE (IntelliJ IDEA), receive my tasks, reports from my issues tracker (in my IDE), write code and run tests in conjunction with my CI server (Team City). I think that day will come soon ;-)

Let's continue with CI :-)

PS: You can read here to find out how TeamCity roooocks.

2 comments:

Anonymous said...

try to manually put the nunit.framework.dll file in the /*TeamCity\buildAgent\work\"checkoutDir"\"projectDir"\bin\debug folder*/. It seems TeamCity doesn't take into account the
"Copy Local = true" option of the reference to nunit, even if the reference is put from GAC. That means that after the checkout the dll is missing locally in the bin folder. Hope this helps.

t800t8 said...

Thanks Anonymous. I will try it :-)