My hobbyist coding updates and releases as the mysterious "Mr. Tines"

Tuesday, 26 January 2010

Adopting PartCover

NOTE: the current version of PartCover (for .net 4) as of 13-Jul-10 appears to resolve this issue.

Starting to think about Infrastructure Helper next release, I've started by running up PartCover to try that out; and noting the necessary transformations, like for a post-build step execution

%NCOVER% %NUNIT% $(TargetFileName) /noshadow //reg //a "Tinesware.Infrastructure;Tinesware.InfrastructureTests;Tinesware.Rules;Tinesware.TestData;CSharpTests"

becoming

%PCOVER% --target "%NUNIT%"  --target-work-dir $(TargetDir) --target-args "$(TargetFileName) /noshadow" --include [Tinesware.*]* --include [CSharpTests]* --output $(TargetDir)PCoverage.xml

where the %THING% symbols point to the relevant executables.

Next step is to unpick and start consuming the PartCover xml; and also to see how flaky it actually is when running over F# code. I'm not immediately optimistic, as when running coverage over the operational tests, I get

[01591] [05764] GetClassIDInfo failed for .NewRight
[01591] [05764] GetClassIDInfo failed for ..ctor
[01591] [05764] GetClassIDInfo failed for ..ctor
[01591] [05764] GetClassIDInfo failed for .get_Item
[01607] [05764] GetClassIDInfo failed for ..ctor
[01607] [05764] GetClassIDInfo failed for .Invoke
[01622] [05764] GetClassIDInfo failed for ..ctor
[01622] [05764] GetClassIDInfo failed for .Invoke
System.InvalidProgramException: Common Language Runtime detected an invalid program.
   at Tinesware.Rules.Assist.Local.LineRange(XElement node)
   at Tinesware.Rules.Assist.Local.MatchNode @ 234.Invoke(a candidate) in Infrastructure\TineswareRules\Assist.fs:line 235
...

which is some Partcover noise from instrumenting the F# code; and then a barf in code that unpicks NCover format data (and which worked just fine under NCover earlier in the same post-build operation).

0 comments: