diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 41e34d446..ef1503942 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "dotnet-reportgenerator-globaltool": { - "version": "5.2.2", + "version": "5.2.4", "commands": [ "reportgenerator" ] diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5c831acdd..e37894bf9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,7 +32,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.0.202' + dotnet-version: '8.0.204' - name: Tools run: dotnet tool restore - name: Setup @@ -63,7 +63,7 @@ jobs: fetch-depth: 0 - uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.0.202' + dotnet-version: '8.0.204' - name: Tools run: dotnet tool restore - name: Setup diff --git a/AltCover.Api.Tests/AltCover.Api.Tests.fsproj b/AltCover.Api.Tests/AltCover.Api.Tests.fsproj index 266594493..a4ac8592f 100644 --- a/AltCover.Api.Tests/AltCover.Api.Tests.fsproj +++ b/AltCover.Api.Tests/AltCover.Api.Tests.fsproj @@ -12,7 +12,7 @@ - + diff --git a/AltCover.Api.Tests/FSApiTests.fs b/AltCover.Api.Tests/FSApiTests.fs index 787ed7061..2e6e16fb8 100644 --- a/AltCover.Api.Tests/FSApiTests.fs +++ b/AltCover.Api.Tests/FSApiTests.fs @@ -1148,7 +1148,7 @@ module FSApiTests = Assembly .GetExecutingAssembly() .GetManifestResourceNames() - |> Seq.find _.EndsWith("AltCover.targets", StringComparison.Ordinal) + |> Seq.find _.EndsWith("AltCover.proj", StringComparison.Ordinal) use stream = Assembly diff --git a/AltCover.Engine/CecilEx.fs b/AltCover.Engine/CecilEx.fs index df95bd1bf..fb7927fb8 100644 --- a/AltCover.Engine/CecilEx.fs +++ b/AltCover.Engine/CecilEx.fs @@ -130,6 +130,14 @@ type internal AssemblyResolver() as self = "dotnet|shared" .Replace('|', Path.DirectorySeparatorChar) + let wingac = + "Microsoft.NET|assembly" + .Replace('|', Path.DirectorySeparatorChar) + + let monogac = + "lib|mono|gac" + .Replace('|', Path.DirectorySeparatorChar) + let sources = [ AssemblyConstants.packageEnv [ Environment.GetEnvironmentVariable "ProgramFiles" @@ -139,7 +147,14 @@ type internal AssemblyResolver() as self = Some <| Path.Combine(shareLocal, dotnetShared) AssemblyConstants.dotnetDir |> Option.map (fun p -> Path.Combine(p, "shared")) - Some AssemblyConstants.nugetCache ] + Some AssemblyConstants.nugetCache + Some <| Path.Combine("usr", monogac) + Environment.GetEnvironmentVariable "WinDir" + |> Option.ofObj + |> Option.map (fun p -> Path.Combine(p, wingac)) + Environment.GetEnvironmentVariable "MONO_GAC_PREFIX" + |> Option.ofObj + |> Option.map (fun p -> Path.Combine(p, monogac)) ] |> List.choose id ] |> List.concat |> List.filter Directory.Exists diff --git a/AltCover.Engine/Json.fs b/AltCover.Engine/Json.fs index 0a7ab364f..6d2f285b6 100644 --- a/AltCover.Engine/Json.fs +++ b/AltCover.Engine/Json.fs @@ -327,9 +327,10 @@ module internal Json = )) let tracked = - System.Collections.Generic.Dictionary() + System.Collections.Generic.Dictionary< + string, + int * NativeJson.Times * NativeJson.Times + >() x.Descendants(XName.Get "TrackedMethod") |> Seq.iter (fun x -> diff --git a/AltCover.Engine/Runner.fs b/AltCover.Engine/Runner.fs index 580a29c8b..4a7dc9e9b 100644 --- a/AltCover.Engine/Runner.fs +++ b/AltCover.Engine/Runner.fs @@ -1486,6 +1486,8 @@ module internal Runner = |> J.getFirstOperandAsNumber |> enum + use _ = fst pair + let hits = Dictionary>() diff --git a/AltCover.Engine/Strings.eo.resx b/AltCover.Engine/Strings.eo.resx index 3500da2d6..3ed9036b1 100644 --- a/AltCover.Engine/Strings.eo.resx +++ b/AltCover.Engine/Strings.eo.resx @@ -471,4 +471,7 @@ Se la opcio ne ĉeestas, tiam la defaŭlta estas 'OC'. Laŭvola: porteblaj operacioj - priraporta raporto, kontroldosiero kaj registritaj datumoj samlokaj kun la registrilo. + + Malsukcesis forigi dosieron {0} + \ No newline at end of file diff --git a/AltCover.Engine/Strings.resx b/AltCover.Engine/Strings.resx index 05875a387..ae2534d21 100644 --- a/AltCover.Engine/Strings.resx +++ b/AltCover.Engine/Strings.resx @@ -475,4 +475,7 @@ If the option is not present, then the default is 'OC'. Optional: portable operations - coverage report, control file and recorded data co-located with the recorder assembly + + Failed to delete file {0} + \ No newline at end of file diff --git a/AltCover.Engine/Tasks.fs b/AltCover.Engine/Tasks.fs index 4226bee2a..5f76bb11a 100644 --- a/AltCover.Engine/Tasks.fs +++ b/AltCover.Engine/Tasks.fs @@ -540,13 +540,20 @@ type RetryDelete() = Justification = "MSBuild tasks use arrays")>] member val Files: string array = [||] with get, set - member internal self.Write message = - ``base``.Log.LogMessage(MessageImportance.High, message) + [] + member internal self.Write0 (o: string -> unit) (f: string) (_: string) : unit = + CommandLine.Format.Local("FailedToDelete", f) |> o + + member internal self.Write (f: string) (dummy: string) : unit = + self.Write0 (``base``.Log.LogWarning) f dummy override self.Execute() = if self.Files.IsNotNull then self.Files |> Seq.filter File.Exists - |> Seq.iter (CommandLine.I.doRetry File.Delete self.Write 10 1000 0) + |> Seq.iter (fun f -> + (CommandLine.I.doRetry File.Delete (self.Write f) 100 100 0 f)) true \ No newline at end of file diff --git a/AltCover.PowerShell/Command.fs b/AltCover.PowerShell/Command.fs index 72db7af7f..558368eb6 100644 --- a/AltCover.PowerShell/Command.fs +++ b/AltCover.PowerShell/Command.fs @@ -508,7 +508,7 @@ type InvokeAltCoverCommand() = member val Single: SwitchParameter = SwitchParameter(false) with get, set /// - /// Do not record branch coverage. Is not compatible with, the -ReportFormat "ncover" option. Incompatible with `-BranchCover`. + /// Do not record branch coverage. Is not compatible with the -ReportFormat "ncover" option. Incompatible with `-BranchCover`. /// [ - /// Do not record line coverage. Is not compatible with, the -ReportFormat "ncover" option. Incompatible with `-LineCover`. + /// Do not record line coverage. Is not compatible with the -ReportFormat "ncover" option. Incompatible with `-LineCover`. /// [ System.Exception> - ( - (unique: string), - (called: bool array) - ) = + ((unique: string), (called: bool array)) + = let constructor = typeof<'T> .GetConstructor([| typeof |]) diff --git a/AltCover.Tests/AltCover.Tests.fsproj b/AltCover.Tests/AltCover.Tests.fsproj index ce7b18b43..890d0c3ad 100644 --- a/AltCover.Tests/AltCover.Tests.fsproj +++ b/AltCover.Tests/AltCover.Tests.fsproj @@ -40,7 +40,7 @@ - + diff --git a/AltCover.Tests/Runner.Tests.fs b/AltCover.Tests/Runner.Tests.fs index 91b6491c8..7eb938a90 100644 --- a/AltCover.Tests/Runner.Tests.fs +++ b/AltCover.Tests/Runner.Tests.fs @@ -910,7 +910,7 @@ module AltCoverRunnerTests = Assembly .GetExecutingAssembly() .GetManifestResourceNames() - |> Seq.find _.EndsWith("AltCover.targets", StringComparison.Ordinal) + |> Seq.find _.EndsWith("AltCover.proj", StringComparison.Ordinal) use stream = Assembly diff --git a/AltCover.Tests/Tests.fs b/AltCover.Tests/Tests.fs index dc0089920..ae9de3d00 100644 --- a/AltCover.Tests/Tests.fs +++ b/AltCover.Tests/Tests.fs @@ -310,7 +310,10 @@ module AltCoverTests = Directory.GetFiles(path, "*.pdb", SearchOption.AllDirectories) files - |> Seq.filter (_.StartsWith(exclude, StringComparison.OrdinalIgnoreCase) >> not) + |> Seq.filter ( + _.StartsWith(exclude, StringComparison.OrdinalIgnoreCase) + >> not + ) |> Seq.filter (fun p -> Path.ChangeExtension(p, ".dll") |> File.Exists) |> Seq.iter (fun p -> let dll = Path.ChangeExtension(p, ".dll") @@ -326,8 +329,8 @@ module AltCoverTests = match pdb with | Some name -> Assert.That(name, Is.EqualTo normalized) - //| _ -> - // raise <| InvalidOperationException((sprintf "%A for %A" dll normalized)) + //| _ -> + // raise <| InvalidOperationException((sprintf "%A for %A" dll normalized)) with :? BadImageFormatException -> ()) @@ -348,7 +351,10 @@ module AltCoverTests = Directory.GetFiles(path, "*.pdb", SearchOption.AllDirectories) files - |> Seq.filter (_.StartsWith(exclude, StringComparison.OrdinalIgnoreCase) >> not) + |> Seq.filter ( + _.StartsWith(exclude, StringComparison.OrdinalIgnoreCase) + >> not + ) |> Seq.filter (fun p -> Path.ChangeExtension(p, ".dll") |> File.Exists) |> Seq.iter (fun p -> let dll0 = Path.ChangeExtension(p, ".dll") @@ -383,8 +389,8 @@ module AltCoverTests = Assert.That(name, Is.EqualTo normalized) AltCover.ProgramDatabase.readSymbols def Assert.That(def.MainModule.HasSymbols, def.MainModule.FileName) - //| _ -> - // raise <| InvalidOperationException((sprintf "%A for %A" dll normalized)) + //| _ -> + // raise <| InvalidOperationException((sprintf "%A for %A" dll normalized)) with :? BadImageFormatException -> ()) finally diff --git a/AltCover.Tests/Tests3.fs b/AltCover.Tests/Tests3.fs index e91390475..565810e88 100644 --- a/AltCover.Tests/Tests3.fs +++ b/AltCover.Tests/Tests3.fs @@ -203,7 +203,7 @@ module AltCoverTests3 = Assembly .GetExecutingAssembly() .GetManifestResourceNames() - |> Seq.find _.EndsWith("AltCover.targets", StringComparison.Ordinal) + |> Seq.find _.EndsWith("AltCover.proj", StringComparison.Ordinal) use stream = Assembly @@ -4899,6 +4899,23 @@ module AltCoverTests3 = monitor ("Hello") test <@ builder.ToString() = "Hello" @> + let write0 = + subject + .GetType() + .GetMethod("Write0", BindingFlags.NonPublic ||| BindingFlags.Instance) + + let mutable written = "written" + + write0.Invoke( + subject, + [| (fun x -> written <- x) + "xx" + "yy" |] + ) + |> ignore + + test <@ written = "Failed to delete file xx" @> + let write = subject .GetType() @@ -4906,7 +4923,7 @@ module AltCoverTests3 = let ex = Assert.Throws(fun () -> - write.Invoke(subject, [| "xx" |]) |> ignore) + write.Invoke(subject, [| "xx"; "yy" |]) |> ignore) test <@ ex.InnerException.GetType().FullName = "System.InvalidOperationException" @> // Recorder.fs => Recorder.Tests \ No newline at end of file diff --git a/AltCover.sln b/AltCover.sln index ee121eb68..222e0b983 100644 --- a/AltCover.sln +++ b/AltCover.sln @@ -38,6 +38,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items" Build\actions.fs = Build\actions.fs Build\AddStrongName.fsx = Build\AddStrongName.fsx Build\AltCover.nuspec = Build\AltCover.nuspec + nupkg\build\AltCover.proj = nupkg\build\AltCover.proj nupkg\build\AltCover.props = nupkg\build\AltCover.props nupkg\build\AltCover.targets = nupkg\build\AltCover.targets Build\Apply-Xslt.ps1 = Build\Apply-Xslt.ps1 diff --git a/Directory.Packages.props b/Directory.Packages.props index 456271835..f76282450 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,9 +4,9 @@ - - - + + + @@ -21,7 +21,7 @@ - + diff --git a/RegressionTesting/issue156/Tests/Tests.csproj b/RegressionTesting/issue156/Tests/Tests.csproj index 626451ff4..878645626 100644 --- a/RegressionTesting/issue156/Tests/Tests.csproj +++ b/RegressionTesting/issue156/Tests/Tests.csproj @@ -16,6 +16,7 @@ + diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 5c52b65c5..045a62faa 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -3,9 +3,15 @@ A. Start with the Quick Start guide : https://github.com/SteveGilham/altcover/wiki/QuickStart-Guide and read the FAQ : https://github.com/SteveGilham/altcover/wiki/FAQ -# (Habu series release 27) +# (Habu series release 28) +* [BREAKING; BUGFIX] Issue #206 : Update to net6+ for `dotnet test` integration and respect the `$(IsTestProject)` setting from the `Microsoft.NET.Test.Sdk` package. +* Simplify the use of the AltCover MSBuild tasks via the associated package-level `.targets` file by not even including the `VSTest` integration unless both `'$(AltCover)' == 'true' AND '$(IsTestProject)' == 'true'`. +* Mitigate instances of `System.IO.IOException: The process cannot access the file '[coverage report]' because it is being used by another process.` +* Explicitly add GAC locations to the paths inspected for dependency resolution + +# 8.8.10 (Habu series release 27) * [BUGFIX] Add `Json` member to the report format enumerations for the typesafe API and for the `InvokeAltCover` cmdlet. -* [BUGFIX] Issue #214 - patch Mono.Cecil to use FIPS compliant algorithm +* [BUGFIX] Issue #214 : patch Mono.Cecil to use FIPS compliant algorithm * [Enhancement] Discussion #206, maybe also Issue #203 : Option `--portable` and equivalent APIs to place the coverage report file and related coverage data in the same folder as the recorder assembly, wherever that might be, allowing the whole instrumented folder structure to be moved into another file structure (e.g. different machine, different OS). # 8.7.3 (Habu series release 26) diff --git a/Samples/Sample7/Library.fs b/Samples/Sample7/Library.fs index bb91fba47..46ad7da61 100644 --- a/Samples/Sample7/Library.fs +++ b/Samples/Sample7/Library.fs @@ -52,9 +52,9 @@ module Problematic = for row = 0 to g.Height do for col = 0 to g.Width do - Assert.AreEqual( + Assert.That( System.Drawing.Rectangle(col, row, col, row), - g.Rectangle(col, row) + Is.EqualTo(g.Rectangle(col, row)) ) [] @@ -64,9 +64,9 @@ module Problematic = for row = 0 to g.Height do for col = 0 to g.Width do - Assert.AreEqual( + Assert.That( System.Drawing.Rectangle(col, row, col, row), - g.Rectangle(col, row) + Is.EqualTo(g.Rectangle(col, row)) ) finally System.Console.WriteLine("Finally") diff --git a/Samples/Sample7/Sample7.fsproj b/Samples/Sample7/Sample7.fsproj index 569337519..f3564be99 100644 --- a/Samples/Sample7/Sample7.fsproj +++ b/Samples/Sample7/Sample7.fsproj @@ -11,8 +11,8 @@ - - + + all diff --git a/ThirdParty/cecil/Mono.Cecil.pdb b/ThirdParty/cecil/Mono.Cecil.pdb deleted file mode 100644 index 16e9b4140..000000000 Binary files a/ThirdParty/cecil/Mono.Cecil.pdb and /dev/null differ diff --git a/docs/AltCover.Cake/AltCover.Cake/PrepareOptions-apidoc.md b/docs/AltCover.Cake/AltCover.Cake/PrepareOptions-apidoc.md index 152157a26..28aead392 100644 --- a/docs/AltCover.Cake/AltCover.Cake/PrepareOptions-apidoc.md +++ b/docs/AltCover.Cake/AltCover.Cake/PrepareOptions-apidoc.md @@ -33,6 +33,7 @@ public class PrepareOptions | [OutputDirectories](PrepareOptions/OutputDirectories-apidoc) { get; } | Gets the output directories (overridden by the MSBuild integration) | | virtual [OutputRoot](PrepareOptions/OutputRoot-apidoc) { get; } | Corresponds to dotnet test option `/p:AltCoverOutputRoot` | | virtual [PathFilter](PrepareOptions/PathFilter-apidoc) { get; } | Corresponds to command line option `-p, --pathFilter=VALUE` | +| virtual [Portable](PrepareOptions/Portable-apidoc) { get; } | Corresponds to command line option `--portable` | | virtual [Report](PrepareOptions/Report-apidoc) { get; } | Gets or sets the value that corresponds to command line option `-r, --report=VALUE` | | virtual [ReportFormat](PrepareOptions/ReportFormat-apidoc) { get; } | Corresponds to command line option `--reportFormat=VALUE` | | virtual [Save](PrepareOptions/Save-apidoc) { get; } | Corresponds to command line option `--save` | diff --git a/docs/AltCover.Cake/AltCover.Cake/PrepareOptions/Portable-apidoc.md b/docs/AltCover.Cake/AltCover.Cake/PrepareOptions/Portable-apidoc.md new file mode 100644 index 000000000..c0bbff9f8 --- /dev/null +++ b/docs/AltCover.Cake/AltCover.Cake/PrepareOptions/Portable-apidoc.md @@ -0,0 +1,14 @@ +# PrepareOptions.Portable property + +Corresponds to command line option `--portable` + +```csharp +public virtual bool Portable { get; } +``` + +## See Also + +* class [PrepareOptions](../PrepareOptions-apidoc) +* namespace [AltCover.Cake](../../AltCover.Cake-apidoc) + + diff --git a/docs/AltCover.DotNet/AltCover/Options.Prepare-apidoc.md b/docs/AltCover.DotNet/AltCover/Options.Prepare-apidoc.md index b255a9663..8e2fc14c7 100644 --- a/docs/AltCover.DotNet/AltCover/Options.Prepare-apidoc.md +++ b/docs/AltCover.DotNet/AltCover/Options.Prepare-apidoc.md @@ -31,6 +31,7 @@ public class Prepare | [OutputDirectories](Options.Prepare/OutputDirectories-apidoc) { get; set; } | | | [OutputRoot](Options.Prepare/OutputRoot-apidoc) { get; set; } | | | [PathFilter](Options.Prepare/PathFilter-apidoc) { get; set; } | | +| [Portable](Options.Prepare/Portable-apidoc) { get; set; } | | | [Report](Options.Prepare/Report-apidoc) { get; set; } | | | [ReportFormat](Options.Prepare/ReportFormat-apidoc) { get; set; } | | | [Save](Options.Prepare/Save-apidoc) { get; set; } | | diff --git a/docs/AltCover.DotNet/AltCover/Options.Prepare/Portable-apidoc.md b/docs/AltCover.DotNet/AltCover/Options.Prepare/Portable-apidoc.md new file mode 100644 index 000000000..47c8149e6 --- /dev/null +++ b/docs/AltCover.DotNet/AltCover/Options.Prepare/Portable-apidoc.md @@ -0,0 +1,12 @@ +# Options.Prepare.Portable property + +```csharp +public bool Portable { get; set; } +``` + +## See Also + +* class [Prepare](../Options.Prepare-apidoc) +* namespace [AltCover](../../AltCover.DotNet-apidoc) + + diff --git a/docs/AltCover.Engine/Abstract-fsapidoc.md b/docs/AltCover.Engine/Abstract-fsapidoc.md index 9d47125e9..5829a372f 100644 --- a/docs/AltCover.Engine/Abstract-fsapidoc.md +++ b/docs/AltCover.Engine/Abstract-fsapidoc.md @@ -86,6 +86,7 @@ The members correspond to the like-named command line options for `AltCover`, ex abstract member Verbosity : System.Diagnostics.TraceLevel with get abstract member Trivia : bool with get abstract member OutputRoot : string with get + abstract member Portable : bool with get ``` ### interface `ILoggingOptions` diff --git a/docs/AltCover.Engine/AltCover-fsapidoc.md b/docs/AltCover.Engine/AltCover-fsapidoc.md index df43d1ecc..e20c5931f 100644 --- a/docs/AltCover.Engine/AltCover-fsapidoc.md +++ b/docs/AltCover.Engine/AltCover-fsapidoc.md @@ -129,6 +129,7 @@ The members correspond to the like-named command line options for `AltCover`, ex member Verbosity : System.Diagnostics.TraceLevel member Trivia: bool with get member OutputRoot : string with get + member Portable : bool with get ``` ``` diff --git a/docs/AltCover.Engine/AltCover/Abstract.IPrepareOptions-apidoc.md b/docs/AltCover.Engine/AltCover/Abstract.IPrepareOptions-apidoc.md index 7659e3c10..61a928e42 100644 --- a/docs/AltCover.Engine/AltCover/Abstract.IPrepareOptions-apidoc.md +++ b/docs/AltCover.Engine/AltCover/Abstract.IPrepareOptions-apidoc.md @@ -46,6 +46,7 @@ public interface IPrepareOptions | [OutputDirectories](Abstract.IPrepareOptions/OutputDirectories-apidoc) { get; } | Corresponds to command line option `-o, --outputDirectory=VALUE` | | [OutputRoot](Abstract.IPrepareOptions/OutputRoot-apidoc) { get; } | Corresponds to dotnet test option `/p:AltCoverOutputRoot` | | [PathFilter](Abstract.IPrepareOptions/PathFilter-apidoc) { get; } | Corresponds to command line option `-p, --pathFilter=VALUE` | +| [Portable](Abstract.IPrepareOptions/Portable-apidoc) { get; } | Corresponds to command line option `--portable` | | [Report](Abstract.IPrepareOptions/Report-apidoc) { get; } | Corresponds to command line option `-r, --report=VALUE` | | [ReportFormat](Abstract.IPrepareOptions/ReportFormat-apidoc) { get; } | Corresponds to command line option `--reportFormat=VALUE` | | [Save](Abstract.IPrepareOptions/Save-apidoc) { get; } | Corresponds to command line option `--save` | diff --git a/docs/AltCover.Engine/AltCover/Abstract.IPrepareOptions/Portable-apidoc.md b/docs/AltCover.Engine/AltCover/Abstract.IPrepareOptions/Portable-apidoc.md new file mode 100644 index 000000000..26a46201f --- /dev/null +++ b/docs/AltCover.Engine/AltCover/Abstract.IPrepareOptions/Portable-apidoc.md @@ -0,0 +1,14 @@ +# Abstract.IPrepareOptions.Portable property + +Corresponds to command line option `--portable` + +```csharp +public bool Portable { get; } +``` + +## See Also + +* interface [IPrepareOptions](../Abstract.IPrepareOptions-apidoc) +* namespace [AltCover](../../AltCover.Engine-apidoc) + + diff --git a/docs/AltCover.Engine/AltCover/AltCover.PrepareOptions-apidoc.md b/docs/AltCover.Engine/AltCover/AltCover.PrepareOptions-apidoc.md index f508c83cb..fa0d16d8b 100644 --- a/docs/AltCover.Engine/AltCover/AltCover.PrepareOptions-apidoc.md +++ b/docs/AltCover.Engine/AltCover/AltCover.PrepareOptions-apidoc.md @@ -35,6 +35,7 @@ public abstract class PrepareOptions : IEquatable, IStructuralEq | [OutputDirectories](AltCover.PrepareOptions/OutputDirectories-apidoc) { get; } | Corresponds to command line option `-o, --outputDirectory=VALUE` | | [OutputRoot](AltCover.PrepareOptions/OutputRoot-apidoc) { get; } | Corresponds to dotnet test option `/p:AltCoverOutputRoot` | | [PathFilter](AltCover.PrepareOptions/PathFilter-apidoc) { get; } | Corresponds to command line option `-p, --pathFilter=VALUE` | +| [Portable](AltCover.PrepareOptions/Portable-apidoc) { get; } | Corresponds to command line option `--portable` | | [Report](AltCover.PrepareOptions/Report-apidoc) { get; } | Corresponds to command line option `-r, --report=VALUE` | | [ReportFormat](AltCover.PrepareOptions/ReportFormat-apidoc) { get; } | Corresponds to command line option `--reportFormat=VALUE` | | [Save](AltCover.PrepareOptions/Save-apidoc) { get; } | Corresponds to command line option `--save` | diff --git a/docs/AltCover.Engine/AltCover/AltCover.PrepareOptions/Portable-apidoc.md b/docs/AltCover.Engine/AltCover/AltCover.PrepareOptions/Portable-apidoc.md new file mode 100644 index 000000000..f3d673c57 --- /dev/null +++ b/docs/AltCover.Engine/AltCover/AltCover.PrepareOptions/Portable-apidoc.md @@ -0,0 +1,14 @@ +# AltCover.PrepareOptions.Portable property + +Corresponds to command line option `--portable` + +```csharp +public bool Portable { get; } +``` + +## See Also + +* class [PrepareOptions](../AltCover.PrepareOptions-apidoc) +* namespace [AltCover](../../AltCover.Engine-apidoc) + + diff --git a/docs/AltCover.Engine/AltCover/Prepare-apidoc.md b/docs/AltCover.Engine/AltCover/Prepare-apidoc.md index 1b71ed310..9b545490f 100644 --- a/docs/AltCover.Engine/AltCover/Prepare-apidoc.md +++ b/docs/AltCover.Engine/AltCover/Prepare-apidoc.md @@ -32,6 +32,7 @@ public class Prepare : Task | [MethodTopLevel](Prepare/MethodTopLevel-apidoc) { get; set; } | Corresponds to command line option `--methodtoplevel=VALUE` | | [OutputDirectories](Prepare/OutputDirectories-apidoc) { get; set; } | Corresponds to command line option `-o, --outputDirectory=VALUE` | | [PathFilter](Prepare/PathFilter-apidoc) { get; set; } | Corresponds to command line option `-p, --pathFilter=VALUE` | +| [Portable](Prepare/Portable-apidoc) { get; set; } | Corresponds to command line option `--portable` | | [Report](Prepare/Report-apidoc) { get; set; } | Corresponds to command line option `-r, --report=VALUE` | | [ReportFormat](Prepare/ReportFormat-apidoc) { get; set; } | Corresponds to command line option `--reportFormat=VALUE` | | [Save](Prepare/Save-apidoc) { get; set; } | Corresponds to command line option `--save` | diff --git a/docs/AltCover.Engine/AltCover/Prepare/Portable-apidoc.md b/docs/AltCover.Engine/AltCover/Prepare/Portable-apidoc.md new file mode 100644 index 000000000..215375809 --- /dev/null +++ b/docs/AltCover.Engine/AltCover/Prepare/Portable-apidoc.md @@ -0,0 +1,14 @@ +# Prepare.Portable property + +Corresponds to command line option `--portable` + +```csharp +public bool Portable { get; set; } +``` + +## See Also + +* class [Prepare](../Prepare-apidoc) +* namespace [AltCover](../../AltCover.Engine-apidoc) + + diff --git a/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions-apidoc.md b/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions-apidoc.md index 97285c8c7..daf3e9330 100644 --- a/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions-apidoc.md +++ b/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions-apidoc.md @@ -34,6 +34,7 @@ public sealed class PrepareOptions : IEquatable, IStructuralEqua | [OutputDirectories](Primitive.PrepareOptions/OutputDirectories-apidoc) { get; } | Corresponds to command line option `-o, --outputDirectory=VALUE` | | [OutputRoot](Primitive.PrepareOptions/OutputRoot-apidoc) { get; } | Corresponds to dotnet test option `/p:AltCoverOutputRoot` | | [PathFilter](Primitive.PrepareOptions/PathFilter-apidoc) { get; } | Corresponds to command line option `-p, --pathFilter=VALUE` | +| [Portable](Primitive.PrepareOptions/Portable-apidoc) { get; } | Corresponds to command line option `--portable` | | [Report](Primitive.PrepareOptions/Report-apidoc) { get; } | Corresponds to command line option `-r, --report=VALUE` | | [ReportFormat](Primitive.PrepareOptions/ReportFormat-apidoc) { get; } | Corresponds to command line option `--reportFormat=VALUE` | | [Save](Primitive.PrepareOptions/Save-apidoc) { get; } | Corresponds to command line option `--save` | diff --git a/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions/Portable-apidoc.md b/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions/Portable-apidoc.md new file mode 100644 index 000000000..e6b789d29 --- /dev/null +++ b/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions/Portable-apidoc.md @@ -0,0 +1,14 @@ +# Primitive.PrepareOptions.Portable property + +Corresponds to command line option `--portable` + +```csharp +public bool Portable { get; } +``` + +## See Also + +* class [PrepareOptions](../Primitive.PrepareOptions-apidoc) +* namespace [AltCover](../../AltCover.Engine-apidoc) + + diff --git a/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions/PrepareOptions-apidoc.md b/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions/PrepareOptions-apidoc.md index a266af370..7b42255dd 100644 --- a/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions/PrepareOptions-apidoc.md +++ b/docs/AltCover.Engine/AltCover/Primitive.PrepareOptions/PrepareOptions-apidoc.md @@ -12,7 +12,7 @@ public PrepareOptions(IEnumerable inputDirectories, IEnumerable bool inPlace, bool save, bool zipFile, bool methodPoint, bool singleVisit, bool lineCover, bool branchCover, IEnumerable commandLine, bool exposeReturnCode, bool sourceLink, bool defer, bool localSource, bool visibleBranches, string showStatic, bool showGenerated, - TraceLevel verbosity, bool trivia, string outputRoot) + TraceLevel verbosity, bool trivia, string outputRoot, bool portable) ``` ## See Also diff --git a/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions-apidoc.md b/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions-apidoc.md index 8785a1e47..b18be2f88 100644 --- a/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions-apidoc.md +++ b/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions-apidoc.md @@ -34,6 +34,7 @@ public sealed class PrepareOptions : IEquatable, IStructuralEqua | [OutputDirectories](TypeSafe.PrepareOptions/OutputDirectories-apidoc) { get; } | Corresponds to command line option `-o, --outputDirectory=VALUE` | | [OutputRoot](TypeSafe.PrepareOptions/OutputRoot-apidoc) { get; } | Corresponds to dotnet test option `/p:AltCoverOutputRoot` | | [PathFilter](TypeSafe.PrepareOptions/PathFilter-apidoc) { get; } | Corresponds to command line option `-p, --pathFilter=VALUE` | +| [Portable](TypeSafe.PrepareOptions/Portable-apidoc) { get; } | Corresponds to command line option `--portable` | | [Report](TypeSafe.PrepareOptions/Report-apidoc) { get; } | Corresponds to command line option `-r, --report=VALUE` | | [ReportFormat](TypeSafe.PrepareOptions/ReportFormat-apidoc) { get; } | Corresponds to command line option `--reportFormat=VALUE` | | [Save](TypeSafe.PrepareOptions/Save-apidoc) { get; } | Corresponds to command line option `--save` | diff --git a/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions/Portable-apidoc.md b/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions/Portable-apidoc.md new file mode 100644 index 000000000..a10736033 --- /dev/null +++ b/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions/Portable-apidoc.md @@ -0,0 +1,15 @@ +# TypeSafe.PrepareOptions.Portable property + +Corresponds to command line option `--portable` + +```csharp +public Flag Portable { get; } +``` + +## See Also + +* class [Flag](../TypeSafe.Flag-apidoc) +* class [PrepareOptions](../TypeSafe.PrepareOptions-apidoc) +* namespace [AltCover](../../AltCover.Engine-apidoc) + + diff --git a/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions/PrepareOptions-apidoc.md b/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions/PrepareOptions-apidoc.md index 1f801cfe3..b0059142a 100644 --- a/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions/PrepareOptions-apidoc.md +++ b/docs/AltCover.Engine/AltCover/TypeSafe.PrepareOptions/PrepareOptions-apidoc.md @@ -10,7 +10,7 @@ public PrepareOptions(DirectoryPaths inputDirectories, DirectoryPaths outputDire Flag save, Flag zipFile, Flag methodPoint, Flag singleVisit, Flag lineCover, Flag branchCover, CommandLine commandLine, Flag exposeReturnCode, Flag sourceLink, Flag defer, Flag localSource, Flag visibleBranches, StaticFormat showStatic, Flag showGenerated, TraceLevel verbosity, - Flag trivia, FilePath outputRoot) + Flag trivia, FilePath outputRoot, Flag portable) ``` ## See Also diff --git a/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat-apidoc.md b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat-apidoc.md index bf8912a6a..4025cd175 100644 --- a/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat-apidoc.md +++ b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat-apidoc.md @@ -10,6 +10,7 @@ public sealed class ReportFormat : IEquatable, IStructuralEquatabl | name | description | | --- | --- | +| static [get_Json](TypeSafe.ReportFormat/get_Json-apidoc)() | | | static [get_NCover](TypeSafe.ReportFormat/get_NCover-apidoc)() | | | static [get_OpenCover](TypeSafe.ReportFormat/get_OpenCover-apidoc)() | | | [AsString](TypeSafe.ReportFormat/AsString-apidoc)() | Returns the string to use in the command line | diff --git a/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat.Tags-apidoc.md b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat.Tags-apidoc.md index f129412d5..3e44eb896 100644 --- a/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat.Tags-apidoc.md +++ b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat.Tags-apidoc.md @@ -8,6 +8,7 @@ public static class Tags | name | description | | --- | --- | +| const [Json](TypeSafe.ReportFormat.Tags/Json-apidoc) | | | const [NCover](TypeSafe.ReportFormat.Tags/NCover-apidoc) | | | const [OpenCover](TypeSafe.ReportFormat.Tags/OpenCover-apidoc) | | diff --git a/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat.Tags/Json-apidoc.md b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat.Tags/Json-apidoc.md new file mode 100644 index 000000000..832ce3f36 --- /dev/null +++ b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat.Tags/Json-apidoc.md @@ -0,0 +1,12 @@ +# TypeSafe.ReportFormat.Tags.Json field + +```csharp +public const int Json; +``` + +## See Also + +* class [Tags](../TypeSafe.ReportFormat.Tags-apidoc) +* namespace [AltCover](../../AltCover.Engine-apidoc) + + diff --git a/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat/get_Json-apidoc.md b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat/get_Json-apidoc.md new file mode 100644 index 000000000..ef7d2b36e --- /dev/null +++ b/docs/AltCover.Engine/AltCover/TypeSafe.ReportFormat/get_Json-apidoc.md @@ -0,0 +1,12 @@ +# TypeSafe.ReportFormat.get_Json method + +```csharp +public static ReportFormat get_Json() +``` + +## See Also + +* class [ReportFormat](../TypeSafe.ReportFormat-apidoc) +* namespace [AltCover](../../AltCover.Engine-apidoc) + + diff --git a/docs/AltCover.Engine/Primitive-fsapidoc.md b/docs/AltCover.Engine/Primitive-fsapidoc.md index 3293becd5..e51a65c74 100644 --- a/docs/AltCover.Engine/Primitive-fsapidoc.md +++ b/docs/AltCover.Engine/Primitive-fsapidoc.md @@ -98,6 +98,7 @@ The members correspond to the like-named command line options for `AltCover`, ex Verbosity : System.Diagnostics.TraceLevel Trivia: bool OutputRoot : string + Portable : bool } with static member Create : unit -> PrepareOptions diff --git a/docs/AltCover.Engine/Tasks-fsapidoc.md b/docs/AltCover.Engine/Tasks-fsapidoc.md index 6645b91b0..eb7a07880 100644 --- a/docs/AltCover.Engine/Tasks-fsapidoc.md +++ b/docs/AltCover.Engine/Tasks-fsapidoc.md @@ -55,6 +55,7 @@ type Prepare = member ShowGenerated : bool with get, set member Verbosity : string with get, set member Trivia: bool with get, set + member Portable: bool with get, set end ``` ## Task `AltCover.Collect` diff --git a/docs/AltCover.Engine/TypeSafe-fsapidoc.md b/docs/AltCover.Engine/TypeSafe-fsapidoc.md index a522765ce..94027c493 100644 --- a/docs/AltCover.Engine/TypeSafe-fsapidoc.md +++ b/docs/AltCover.Engine/TypeSafe-fsapidoc.md @@ -172,6 +172,7 @@ This holds the strongly-typed equivalent of the command line options type ReportFormat = | NCover | OpenCover + | Json with member AsString : unit -> string end @@ -254,6 +255,7 @@ The members correspond to the like-named command line options for `AltCover`, ex Verbosity : System.Diagnostics.TraceLevel Trivia: Flag OutputRoot : FilePath + Portable : Flag } with static member Create : unit -> PrepareOptions diff --git a/docs/AltCover.Fake.DotNet.Testing.AltCover/Abstract-fsapidoc.md b/docs/AltCover.Fake.DotNet.Testing.AltCover/Abstract-fsapidoc.md index 6e58c9fc7..2f4dbaac5 100644 --- a/docs/AltCover.Fake.DotNet.Testing.AltCover/Abstract-fsapidoc.md +++ b/docs/AltCover.Fake.DotNet.Testing.AltCover/Abstract-fsapidoc.md @@ -86,6 +86,7 @@ The members correspond to the like-named command line options for `AltCover`, ex abstract member Verbosity : System.Diagnostics.TraceLevel with get abstract member Trivia : bool with get abstract member OutputRoot : string with get + abstract member Portable : bool with get ``` diff --git a/docs/AltCover.Fake.DotNet.Testing.AltCover/AltCover-fsapidoc.md b/docs/AltCover.Fake.DotNet.Testing.AltCover/AltCover-fsapidoc.md index 995c8bb92..9a1cfa14d 100644 --- a/docs/AltCover.Fake.DotNet.Testing.AltCover/AltCover-fsapidoc.md +++ b/docs/AltCover.Fake.DotNet.Testing.AltCover/AltCover-fsapidoc.md @@ -147,6 +147,7 @@ The members correspond to the like-named command line options for `AltCover`, ex member Verbosity : System.Diagnostics.TraceLevel member Trivia: bool with get member OutputRoot : string with get + member Portable : bool with get ``` diff --git a/docs/AltCover.Fake.DotNet.Testing.AltCover/Primitive-fsapidoc.md b/docs/AltCover.Fake.DotNet.Testing.AltCover/Primitive-fsapidoc.md index 0200e711d..ec143d25e 100644 --- a/docs/AltCover.Fake.DotNet.Testing.AltCover/Primitive-fsapidoc.md +++ b/docs/AltCover.Fake.DotNet.Testing.AltCover/Primitive-fsapidoc.md @@ -98,6 +98,7 @@ The members correspond to the like-named command line options for `AltCover`, ex Verbosity : System.Diagnostics.TraceLevel Trivia: bool OutputRoot : string + Portable : bool } with static member Create : unit -> PrepareOptions diff --git a/docs/AltCover.Fake.DotNet.Testing.AltCover/TypeSafe-fsapidoc.md b/docs/AltCover.Fake.DotNet.Testing.AltCover/TypeSafe-fsapidoc.md index 9eabdd187..68f59fa7f 100644 --- a/docs/AltCover.Fake.DotNet.Testing.AltCover/TypeSafe-fsapidoc.md +++ b/docs/AltCover.Fake.DotNet.Testing.AltCover/TypeSafe-fsapidoc.md @@ -172,6 +172,7 @@ This holds the strongly-typed equivalent of the command line options type ReportFormat = | NCover | OpenCover + | Json with member AsString : unit -> string end @@ -254,6 +255,7 @@ The members correspond to the like-named command line options for `AltCover`, ex Verbosity : System.Diagnostics.TraceLevel Trivia: Flag OutputRoot : FilePath + Portable : Flag } with static member Create : unit -> PrepareOptions diff --git a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand-apidoc.md b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand-apidoc.md index 24a8c5f4d..fdc0714e0 100644 --- a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand-apidoc.md +++ b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand-apidoc.md @@ -29,7 +29,7 @@ public class InvokeAltCoverCommand : PSCmdlet | [AssemblyFilter](InvokeAltCoverCommand/AssemblyFilter-apidoc) { get; set; } | Assembly names to exclude from instrumentation (linked by instrumented assemblies) | | [AttributeFilter](InvokeAltCoverCommand/AttributeFilter-apidoc) { get; set; } | Attribute names to exclude from instrumentation | | [AttributeTopLevel](InvokeAltCoverCommand/AttributeTopLevel-apidoc) { get; set; } | Attributes to mark a type as "top level" | -| [BranchCover](InvokeAltCoverCommand/BranchCover-apidoc) { get; set; } | Do not record line coverage. Implies, and is compatible with, the -ReportFormat "opencover" option. Incompatible with `-LineCover`. | +| [BranchCover](InvokeAltCoverCommand/BranchCover-apidoc) { get; set; } | Do not record line coverage. Is not compatible with the -ReportFormat "ncover" option. Incompatible with `-LineCover`. | | [CallContext](InvokeAltCoverCommand/CallContext-apidoc) { get; set; } | Tracking either times of visits in ticks or designated method calls leading to the visits. | | [Cobertura](InvokeAltCoverCommand/Cobertura-apidoc) { get; set; } | File path for Cobertura format version of the collected data | | [CommandLine](InvokeAltCoverCommand/CommandLine-apidoc) { get; set; } | Arguments for a launched process | @@ -42,7 +42,7 @@ public class InvokeAltCoverCommand : PSCmdlet | [InputDirectory](InvokeAltCoverCommand/InputDirectory-apidoc) { get; set; } | Folder or folders containing assemblies to instrument (default: current directory) | | [Key](InvokeAltCoverCommand/Key-apidoc) { get; set; } | Strong name key or keys that were used to sign the inputs | | [LcovReport](InvokeAltCoverCommand/LcovReport-apidoc) { get; set; } | File path for lcov format version of the collected data | -| [LineCover](InvokeAltCoverCommand/LineCover-apidoc) { get; set; } | Do not record branch coverage. Implies, and is compatible with, the -ReportFormat "opencover" option. Incompatible with `-BranchCover`. | +| [LineCover](InvokeAltCoverCommand/LineCover-apidoc) { get; set; } | Do not record branch coverage. Is not compatible with the -ReportFormat "ncover" option. Incompatible with `-BranchCover`. | | [LocalSource](InvokeAltCoverCommand/LocalSource-apidoc) { get; set; } | Don't instrument code for which the source file is not present. | | [MethodFilter](InvokeAltCoverCommand/MethodFilter-apidoc) { get; set; } | Method names to exclude from instrumentation | | [MethodPoint](InvokeAltCoverCommand/MethodPoint-apidoc) { get; set; } | Record only whether a method has been visited or not. Overrides the `-LineCover` and `-BranchCover` options. | @@ -50,9 +50,10 @@ public class InvokeAltCoverCommand : PSCmdlet | [OutputDirectory](InvokeAltCoverCommand/OutputDirectory-apidoc) { get; set; } | Folder or folders to receive the instrumented assemblies and their companions (default: sub-folder `__Instrumented` of the current directory; or `__Saved` if `-Inplace` is set). | | [OutputFile](InvokeAltCoverCommand/OutputFile-apidoc) { get; set; } | Write the recorded coverage to this file rather than overwriting the original report file. | | [PathFilter](InvokeAltCoverCommand/PathFilter-apidoc) { get; set; } | Source file paths to exclude from instrumentation | +| [Portable](InvokeAltCoverCommand/Portable-apidoc) { get; set; } | Portable operation - coverage report, control file and recorded data co-located with the recorder assembly | | [RecorderDirectory](InvokeAltCoverCommand/RecorderDirectory-apidoc) { get; set; } | The folder containing the instrumented code to monitor (including the `AltCover.Recorder.g.dll` generated by previous a use of the .net core `AltCover`). | | [Report](InvokeAltCoverCommand/Report-apidoc) { get; set; } | The output report template file (default: 'coverage.xml' or 'coverage.json' in the current directory) | -| [ReportFormat](InvokeAltCoverCommand/ReportFormat-apidoc) { get; set; } | Generate the report in the specified format (NCover or the default OpenCover) | +| [ReportFormat](InvokeAltCoverCommand/ReportFormat-apidoc) { get; set; } | Generate the report in the specified format (NCover, JSON or the default OpenCover) | | [Runner](InvokeAltCoverCommand/Runner-apidoc) { get; set; } | Selects `Runner` mode | | [Save](InvokeAltCoverCommand/Save-apidoc) { get; set; } | Write raw coverage data to file for later processing | | [ShowGenerated](InvokeAltCoverCommand/ShowGenerated-apidoc) { get; set; } | Mark generated code with a visit count of -2 (Automatic) for the Visualizer if unvisited | diff --git a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/BranchCover-apidoc.md b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/BranchCover-apidoc.md index ed721406d..0048b8e6e 100644 --- a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/BranchCover-apidoc.md +++ b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/BranchCover-apidoc.md @@ -1,6 +1,6 @@ # InvokeAltCoverCommand.BranchCover property -Do not record line coverage. Implies, and is compatible with, the -ReportFormat "opencover" option. Incompatible with `-LineCover`. +Do not record line coverage. Is not compatible with the -ReportFormat "ncover" option. Incompatible with `-LineCover`. ```csharp public SwitchParameter BranchCover { get; set; } diff --git a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/LineCover-apidoc.md b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/LineCover-apidoc.md index 0a0cbbc64..973e0ac82 100644 --- a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/LineCover-apidoc.md +++ b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/LineCover-apidoc.md @@ -1,6 +1,6 @@ # InvokeAltCoverCommand.LineCover property -Do not record branch coverage. Implies, and is compatible with, the -ReportFormat "opencover" option. Incompatible with `-BranchCover`. +Do not record branch coverage. Is not compatible with the -ReportFormat "ncover" option. Incompatible with `-BranchCover`. ```csharp public SwitchParameter LineCover { get; set; } diff --git a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/Portable-apidoc.md b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/Portable-apidoc.md new file mode 100644 index 000000000..d6acf7c47 --- /dev/null +++ b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/Portable-apidoc.md @@ -0,0 +1,14 @@ +# InvokeAltCoverCommand.Portable property + +Portable operation - coverage report, control file and recorded data co-located with the recorder assembly + +```csharp +public SwitchParameter Portable { get; set; } +``` + +## See Also + +* class [InvokeAltCoverCommand](../InvokeAltCoverCommand-apidoc) +* namespace [AltCover.Commands](../../AltCover.PowerShell-apidoc) + + diff --git a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/ReportFormat-apidoc.md b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/ReportFormat-apidoc.md index 444aac164..48aef2292 100644 --- a/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/ReportFormat-apidoc.md +++ b/docs/AltCover.PowerShell/AltCover.Commands/InvokeAltCoverCommand/ReportFormat-apidoc.md @@ -1,6 +1,6 @@ # InvokeAltCoverCommand.ReportFormat property -Generate the report in the specified format (NCover or the default OpenCover) +Generate the report in the specified format (NCover, JSON or the default OpenCover) ```csharp public ReportFormat ReportFormat { get; set; } diff --git a/docs/AltCover.PowerShell/AltCover.Commands/ReportFormat-apidoc.md b/docs/AltCover.PowerShell/AltCover.Commands/ReportFormat-apidoc.md index 15a6b52b0..9f401dc46 100644 --- a/docs/AltCover.PowerShell/AltCover.Commands/ReportFormat-apidoc.md +++ b/docs/AltCover.PowerShell/AltCover.Commands/ReportFormat-apidoc.md @@ -12,6 +12,7 @@ public enum ReportFormat | --- | --- | --- | | NCover | `0` | Generate an NCover format report | | OpenCover | `1` | Generate an OpenCover format report | +| Json | `2` | Generate a JSON format report | ## See Also diff --git a/docs/PowerShell-integration.md b/docs/PowerShell-integration.md index 198b8294f..c0cebce57 100644 --- a/docs/PowerShell-integration.md +++ b/docs/PowerShell-integration.md @@ -1124,12 +1124,13 @@ Invoke-AltCover [-AssemblyExcludeFilter ] [-AssemblyFilter ] [-DropReturnCode ] [-FileFilter ] [-InPlace ] [-InputDirectory ] [-Key ] [-LineCover ] [-LocalSource ] [-MethodFilter ] [-MethodPoint ] [-MethodTopLevel -] [-OutputDirectory ] [-PathFilter ] [-Report ] [-ReportFormat -{NCover | OpenCover}] [-Save ] [-ShowGenerated ] [-ShowStatic -{KeepHidden | Mark | Reveal}] [-Single ] [-SourceLink ] -[-StrongNameKey ] [-SymbolDirectory ] [-Trivia ] [-TypeFilter -] [-TypeTopLevel ] [-Verbosity {Off | Error | Warning | Info | Verbose}] -[-VisibleBranches ] [-ZipFile ] [] +] [-OutputDirectory ] [-PathFilter ] [-Portable ] +[-Report ] [-ReportFormat {NCover | OpenCover | Json}] [-Save ] +[-ShowGenerated ] [-ShowStatic {KeepHidden | Mark | Reveal}] [-Single +] [-SourceLink ] [-StrongNameKey ] [-SymbolDirectory +] [-Trivia ] [-TypeFilter ] [-TypeTopLevel ] +[-Verbosity {Off | Error | Warning | Info | Verbose}] [-VisibleBranches ] [-ZipFile +] [] Invoke-AltCover [-Version] [] @@ -1472,9 +1473,9 @@ Accept wildcard characters? false ``` #### `-ReportFormat ` -Generate the report in the specified format (NCover or the default OpenCover) +Generate the report in the specified format (NCover, JSON or the default OpenCover) -Possible values: NCover, OpenCover +Possible values: NCover, OpenCover, Json ``` Required? false @@ -1542,8 +1543,8 @@ Accept wildcard characters? false ``` #### `-LineCover ` -Do not record branch coverage. Implies, and is compatible with, the -ReportFormat "opencover" -option. Incompatible with `-BranchCover`. +Do not record branch coverage. Is not compatible with the -ReportFormat "ncover" option. +Incompatible with `-BranchCover`. ``` Required? false @@ -1554,8 +1555,8 @@ Accept wildcard characters? false ``` #### `-BranchCover ` -Do not record line coverage. Implies, and is compatible with, the -ReportFormat "opencover" -option. Incompatible with `-LineCover`. +Do not record line coverage. Is not compatible with the -ReportFormat "ncover" option. +Incompatible with `-LineCover`. ``` Required? false @@ -1654,6 +1655,18 @@ Accept pipeline input? false Accept wildcard characters? false ``` +#### `-Portable ` +Portable operation - coverage report, control file and recorded data co-located with the +recorder assembly + +``` +Required? false +Position? named +Default value False +Accept pipeline input? false +Accept wildcard characters? false +``` + #### `-ShowStatic ` Instrument and show code that is by default skipped as trivial. @@ -1716,9 +1729,9 @@ None ``` -Invoke-AltCover -Report $x -OutputDirectory $o -InputDirectory $i -AssemblyFilter "Adapter" -ReportFormat NCover +Invoke-AltCover -Report $x -OutputDirectory $o -InputDirectory $i -AssemblyFilter "Adapter" -ReportFormat NCover -InformationAction Continue ``` --InformationAction Continue + ### Merge-OpenCover diff --git a/docs/Usage.md b/docs/Usage.md index cc8330e29..a8f182b7d 100644 --- a/docs/Usage.md +++ b/docs/Usage.md @@ -8,7 +8,7 @@ The full command line is ``` -AltCover [/i[nputDirectory]=VALUE] [/o[utputDirectory]=VALUE] [/y|symbolDirectory=VALUE] [/d[ependency]=VALUE] [/k[ey]=VALUE] [/sn|strongNameKey=VALUE] [/r[eport]=VALUE] [/f[ileFilter]=VALUE] [/p[athFilter]=VALUE] [/s|assemblyFilter=VALUE] [/e|assemblyExcludeFilter=VALUE] [/t[ypeFilter]=VALUE] [/m[ethodFilter]=VALUE] [/a[ttributeFilter]=VALUE] [/attributetoplevel=VALUE] [/typetoplevel=VALUE] [/methodtoplevel=VALUE] [--l[ocalSource]] [/c[allContext]=VALUE] [/reportFormat=VALUE] [--inplace] [--save] [--zipfile] [--methodpoint] [--single] [--linecover] [--branchcover] [--dropReturnCode] [--sourcelink] [--defer] [--v[isibleBranches]] [/showstatic[=VALUE]] [--showGenerated] [--trivia] [-q] [--verbose] [--?|help|h] [-- ] [...] +AltCover [/i[nputDirectory]=VALUE] [/o[utputDirectory]=VALUE] [/y|symbolDirectory=VALUE] [/d[ependency]=VALUE] [/k[ey]=VALUE] [/sn|strongNameKey=VALUE] [/r[eport]=VALUE] [/f[ileFilter]=VALUE] [/p[athFilter]=VALUE] [/s|assemblyFilter=VALUE] [/e|assemblyExcludeFilter=VALUE] [/t[ypeFilter]=VALUE] [/m[ethodFilter]=VALUE] [/a[ttributeFilter]=VALUE] [/attributetoplevel=VALUE] [/typetoplevel=VALUE] [/methodtoplevel=VALUE] [--l[ocalSource]] [/c[allContext]=VALUE] [/reportFormat=VALUE] [--inplace] [--save] [--zipfile] [--methodpoint] [--single] [--linecover] [--branchcover] [--dropReturnCode] [--sourcelink] [--defer] [--v[isibleBranches]] [/showstatic[=VALUE]] [--showGenerated] [--trivia] [--portable] [-q] [--verbose] [--?|help|h] [-- ] [...] or AltCover Runner [/r[ecorderDirectory]=VALUE] [/w[orkingDirectory]=VALUE] [/x|executable=VALUE] [--collect] [/l[covReport]=VALUE] [/t[hreshold]=VALUE] [/c[obertura]=VALUE] [/o[utputFile]=VALUE] [--dropReturnCode] [/summary|teamcity[=VALUE]] [-q] [--verbose] [--?|help|h] [-- ] [...] or @@ -134,6 +134,9 @@ In detail --showGenerated Optional: Mark generated code with a visit count of -2 (Automatic) for the Visualizer if unvisited --trivia Optional: Omit trivial sequence points + --portable Optional: portable operations - coverage report, + control file and recorded data co-located with + the recorder assembly -q Optional, multiple: Quiet mode -- once to switch off informational messages, twice to switch off warnings as well, three (or more) times to @@ -231,7 +234,7 @@ or, for the global tool only * The `--dependency` argument will expand environment variables in the paths from release 4.0.653; %USERPROFILE%, %ProgramFiles% and %NUGET_PACKAGES% are likely to be the most useful here, e.g. `%ProgramFiles%/dotnet/shared/Microsoft.AspNetCore.App/2.1.5/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll` or similar to pick up ASP.Net Core assemblies needed for type references -* The `--callContext` argument is only used with `--opencover`, otherwise it has no effect. Tracked methods are recorded at instrumentation time, but call context information is only recorded in runner mode, including `runner --collect`, which allows for heavier processing after the process terminates than the `ProcessExit` handler. +* The `--callContext` argument has no effect with `NCover` report format. Tracked methods are recorded at instrumentation time, but call context information is only recorded in runner mode, including `runner --collect`, which allows for heavier processing after the process terminates than the `ProcessExit` handler. * In runner mode, exactly one of a command to be executed (`-x`) or the `--collect` option is required. If `--collect` is supplied then anything after a free-standing `--` is ignored. diff --git a/global.json b/global.json index 82dd9d3bd..c87dd8a25 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.202", + "version": "8.0.204", "rollForward": "latestMinor" } } \ No newline at end of file diff --git a/nupkg/build/AltCover.proj b/nupkg/build/AltCover.proj new file mode 100644 index 000000000..591fd61b9 --- /dev/null +++ b/nupkg/build/AltCover.proj @@ -0,0 +1,220 @@ + + + + false + Info + Fail + OK + + + + + + + + + + + + + + + + + + + + + + + $ + $(AltCoverDollarChar)(ProjectName) + $(AltCoverDollarChar)(SolutionDir) + $(AltCoverDollarChar)([System.Guid]::NewGuid()) + %(AltCoverXmlOutput.RootDir)/%(AltCoverXmlOutput.Directory)/%(AltCoverXmlOutput.Filename).$(TargetFramework)%(AltCoverXmlOutput.Extension) + $(ProjectDir)coverage$(AltCoverFileExtension) + $(ProjectDir)coverage.$(TargetFramework)$(AltCoverFileExtension) + - + OpenCover + + + + $(AltCoverReport.Replace($(AltCoverProjectName),$(ProjectName)).Replace($(AltCoverNewGuid),$([System.Guid]::NewGuid().ToString()))) + $(AltCoverReport1.Replace($(AltCoverSolutionDir),'') + $(AltCoverReport1.Replace($(AltCoverSolutionDir),$(SolutionDir))) + + + + + + + + + + + + + + + + + + + + + + + + + $(TargetPath) + $([System.IO.Path]::Combine($(AltCoverInstrumentedDirectory)_$(ProjectName), $(TargetFileName))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(AltCoverShowSummary) + Foreground + $(TargetDir) + $(AltCoverInstrumentedDirectory)_$(ProjectName) + + + + + + + + + \ No newline at end of file diff --git a/nupkg/build/AltCover.targets b/nupkg/build/AltCover.targets index 11e37e0af..3ad15aa5a 100644 --- a/nupkg/build/AltCover.targets +++ b/nupkg/build/AltCover.targets @@ -29,211 +29,5 @@ - - false - Info - Fail - OK - - - - - - - - - - - - - - - - - - - - - - - $ - $(AltCoverDollarChar)(ProjectName) - $(AltCoverDollarChar)(SolutionDir) - $(AltCoverDollarChar)([System.Guid]::NewGuid()) - %(AltCoverXmlOutput.RootDir)/%(AltCoverXmlOutput.Directory)/%(AltCoverXmlOutput.Filename).$(TargetFramework)%(AltCoverXmlOutput.Extension) - $(ProjectDir)coverage$(AltCoverFileExtension) - $(ProjectDir)coverage.$(TargetFramework)$(AltCoverFileExtension) - - - OpenCover - - - - $(AltCoverReport.Replace($(AltCoverProjectName),$(ProjectName)).Replace($(AltCoverNewGuid),$([System.Guid]::NewGuid().ToString()))) - $(AltCoverReport1.Replace($(AltCoverSolutionDir),'') - $(AltCoverReport1.Replace($(AltCoverSolutionDir),$(SolutionDir))) - - - - - - - - - - - - - - - - - - - - - - - - $(TargetPath) - $([System.IO.Path]::Combine($(AltCoverInstrumentedDirectory)_$(ProjectName), $(TargetFileName))) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(AltCoverShowSummary) - Foreground - $(TargetDir) - $(AltCoverInstrumentedDirectory)_$(ProjectName) - - - - - - - - + \ No newline at end of file