Just the other day, JetBrains released ReSharper 4.5.1. There are no major changes; it’s a maintenance release.
And the good news is, the latest version of xunitcontrib (0.3.1) works just fine with it. No changes. Nothing.
But there’s one nice, new, quiet, little feature.
ReSharper 4.5 added naming style rules, such that you would get a visible squiggly warning when classes weren’t named InCamelCase and variables weren’t lowerCaseCamel.
Too bad for those upstart BDD folks that like to ape Ruby with Significant_use_of_the_underscore_character when naming their tests (“underscore porn”). These guys would get a warning under their test methods.
We can fix this in 4.5.1 by adding a user defined naming rule. Go to the ReSharper options dialog, and select Naming Style from the tree on the left hand side. Then select Add in the bottom half of this dialog. We get a new window:
We want to set the rule just as in the picture – give it a description, select Test type and Test method (property) and then select First_upper.
And now our Interestingly_named_methods are no longer marked as being non-standard, and our “normally” named tests are prompted for renaming.
Cool. But what about your existing, non-BDD style tests? You don’t have to rename those. Simply add a new naming style to the rule you’ve just created. So not only does the rule for test elements enforce Uppercase_with_underscores, it also enforces UpperCamelCase. Very handy.
And in case you missed why I’m pointing this out, ReSharper is smart enough to realise that this rule applies to any test identified by a test provider, such as xunitcontrib. Those examples above are xunit Facts.
And the best bit? I didn’t have to do any work.