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:
Post a Comment