Ruppsn writes: > Well, I have the Version 1.4.0.3524 up and running in conjunction with > subversion; well, I reverted to this version because the latest > release crashed my SVN (the 'unable to load the output from svn' > thing);
You can use the CI build 1.4.1.3797 from http://ccnetlive.thoughtworks.com or if you want to run the release version with the Subversion fix get the 1.4.1 release sources and add the line process.WaitForExit() before process.Close() at the end of the Run() method in project/core/util/ProcessExecutor.cs and build it. (Feel free to ask for instructions on building CCNet) > <snip> > Okay, here they go, the questions I have: > 1) First of all; how do I have to model all these dependencies without > having a broken integration due to concurrent modifications/builds of > dependent libs. Well, I read about serialized builds in (http:// > confluence.public.thoughtworks.org/display/CCNET/Integration+Queues). > Due to that I have currently one big serialized build in one queue > comprising of all the projects and libraries with priorities according > to the link above. For this, I simply converted the lib/project > structure to a DAG and performed a topological sorting. Well, this > should work, but it's no surprise that this won't scale pretty good, > right? This question is not that easy to answer. You could have a look at the different types of triggers and publishers, maybe they make your life easier (forcebuild publisher, project trigger, multi trigger etc). Another idea would be using svn:externals (you need 1.4.1 for that) to pull the libs into a project. Another hack that is used sometimes to implement complex structures is to use the filesystem sourcecontrol. You can use it to watch some (dummy) files that are changed by other projects (e.g. the lib projects) and make the project rebuild if these files change. > 2) For unit-testing, we use the googletest testing lib that allows > outputting the logs of the tests to a xml file in a JUnit / NUnit > compatible fashion. Well, this works well in that sense, that the > tests are executed (calling the <exec> task) and dashboard notifies > that the tests are passed or failed. However, I do not get any > information from the build's test in the NUnit details area. Actually, > do I have to expect some? I think, as long as the googletest > executable exposes its information in JUnit/NUnit style, this > information will be reused in the NUnit details area. Am I wrong? > Likewise, the 'View Statistics' area does not provide any information > on how much of the tests failed or passed (neither in the 'Detailed > Data' tab nor in the 'Summarized Data' tab). JUnit and NUnit XML is not exactly the same. CC.Net is expecting NUnit XML by default. If you merge your NUnit test results using the file merge task it will show up in the details area. If you have JUnit XML or something else you may need to hack/exchange the XSL sheets. IIRC the test summary is generated with a XSL snippet that is aware of NUnit and JUnit XML but by default the details expect NUnit XML. For the statistics you need to use the statistics publisher. If your tests do not show up in the statistics page you might need to provide the statistics publisher with some XPaths so that it knows where to get the data from. And if you want to add custom statistics you need to also add them to the javascript config of the graphs... http://confluence.public.thoughtworks.org/display/CCNET/Statistics+Publisher http://www.ridgway.co.za/archive/2007/05/21/adding-custom-graphs-to-the-cruisecontrol.net-statistics-replacement.aspx > 3) Sometimes I'am wondering, if I am the only one who is concerned > with CCNet, testing unmanaged C++ code and getting Code Coverage > information for the tests. Unfortunately, NCover, NDepends and finally > NUnit won't work because we are in a plain unmanaged C++ environment. > Are there any alternatives or is there anybody out there who can give > me a hint (or a small example) on how to implement CI under these > circumstances? I have successfully built a CC.Net environment for building (unmanaged) C stuff using CUnit and CTC++ for code coverage. CTC++ is a commercial tool but it's doing nice HTML and XML reports. The only problem was that i had to write a (crappy) XSL sheet because they do not supply one. An open source solution would be to build using the GNU Compiler Collection and use gcov for code coverage, but i never tried to get the results into the dashboard. That could be a little tricky but it should be possible somehow ;-)... I guess there is also an MS tool for coverage but it's not in professional edition (team edition or something?). BTW, i would recommend CPPUnit over CUnit because it easier to use with CC.Net, but there was an already existing testsuite in my case... If you want to get some metrics about your C/C++ source you could additionaly have a look at Sourcemonitor. It's freeware and can be integrated into CC.Net. It should be easy to find the config and XSL files on the net... > 4) And last but not least; are there nicely designed xslt available > that pimp my dashboard? Would be nice (and great) if there is (or > would be) something like a repository where you have some screenshots > of a customized dashboard along with the xslts provided. What types of XSL sheets are you looking for? There are alternatives for some of the default XSL sheets in svn (and IIRC in the xsl folder of the dashboard in post-1.4 releases). And i bet you will find some on the net. The community area of the wiki could also be a place to look for stuff like that. I hope that helps a little. regards, Daniel
