Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Local vs roaming configuration of NCrunch project and solution files
abelb
#1 Posted : Thursday, September 25, 2014 2:48:41 PM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 9/12/2014(UTC)
Posts: 155
Location: Netherlands

Thanks: 19 times
Was thanked: 11 time(s) in 11 post(s)
I noticed that the *.ncrunchproject and *.ncrunchsolution files contain both locally necessary information as well as sharable information. We would like to share the configuration through our Mercurial concurrent version control system, but every time someone makes a change in (locally) ignored or filtered tests, this is saved in the *.ncrunchproject files.

I would like the parts that are required for proper compilation, like additional includes and other project settings, to be shared among our programmers, but I would like localized settings that will change on each testrun, like filters and ignores, to be only available locally.

Visual Studio uses a separation with the *.user files for solutions and projects, does NCrunch offer something similar, or do you know of a best practice way of achieving the same effect (I am thinking of externally parsed entities, or some other way of splitting up the XML config files)?
Remco
#2 Posted : Thursday, September 25, 2014 11:04:06 PM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,144

Thanks: 959 times
Was thanked: 1290 time(s) in 1196 post(s)
There is a popular feature request that would probably capture this - http://ncrunch.uservoice.com/forums/245203-feature-requests/suggestions/5652744-separate-ncrhunch-project-configuration-from-user.

The original idea behind the 'Ignored Tests' feature was for it to be used to specify tests that wouldn't work with NCrunch. Such settings were ideally shared between team members as it would be annoying for them to need to each re-flag the tests that NCrunch couldn't run.

NCrunch does have a user only file (ncrunchsolution.user), which is basically a binary file containing non-critical configuration such as tool window layouts and the currently selected engine mode.

See here for a list of files created by NCrunch and what these files represent.

The Engine Modes (with their filters) are stored in the shared solution configuration file (ncrunchsolution), but the currently selected engine mode is stored in the local file (ncrunchsolution.user). This makes it possible for you to have your own Engine Mode (or set of engine modes) that you use for your work style - and others can use this if they choose to.

The main problem with NCrunch configuration is that where this configuration should be stored and how it should be applied seems to depend very much on how people are using the product. This makes it impossible to create a static design that can cater for all needs. The ideal solution is to introduce additional complexity into the configuration system to allow many of the settings to be specified on a user or team basis, with support for inheritance etc. I'm fairly certain that this will be introduced - though at this stage I can't promise when it will happen.
1 user thanked Remco for this useful post.
abelb on 9/26/2014(UTC)
Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 0.029 seconds.
Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download