diff --git a/src/app/Fake.DotNet.Testing.MSTest/MSTest.fs b/src/app/Fake.DotNet.Testing.MSTest/MSTest.fs index e40f41fa9e4..15b5d3703c2 100644 --- a/src/app/Fake.DotNet.Testing.MSTest/MSTest.fs +++ b/src/app/Fake.DotNet.Testing.MSTest/MSTest.fs @@ -3,21 +3,16 @@ module Fake.DotNet.Testing.MSTest open System open System.Text +open BlackFox.VsWhere open Fake.Core +open Fake.IO open Fake.Testing.Common -/// [omit] -let mstestPaths = - [| @"[ProgramFilesX86]\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\"; - @"[ProgramFilesX86]\Microsoft Visual Studio\2019\Professional\Common7\IDE\"; - @"[ProgramFilesX86]\Microsoft Visual Studio\2019\Community\Common7\IDE\"; - @"[ProgramFilesX86]\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\"; - @"[ProgramFilesX86]\Microsoft Visual Studio\2017\Professional\Common7\IDE\"; - @"[ProgramFilesX86]\Microsoft Visual Studio\2017\Community\Common7\IDE\"; - @"[ProgramFilesX86]\Microsoft Visual Studio 14.0\Common7\IDE"; - @"[ProgramFilesX86]\Microsoft Visual Studio 12.0\Common7\IDE"; - @"[ProgramFilesX86]\Microsoft Visual Studio 11.0\Common7\IDE"; - @"[ProgramFilesX86]\Microsoft Visual Studio 10.0\Common7\IDE" |] + +let private getAllVsPath () = + VsInstances.getWithPackage "Microsoft.VisualStudio.PackageGroup.TestTools.MSTestV2.Managed" false + |> List.map (fun vs -> Path.combine vs.InstallationPath "Common7\\Tools") + /// [omit] let mstestexe = @@ -64,7 +59,7 @@ let MSTestDefaults = Tests = [] TimeOut = TimeSpan.FromMinutes 5. ToolPath = - match Process.tryFindFile mstestPaths mstestexe with + match Process.tryFindFile (getAllVsPath ()) mstestexe with | Some path -> path | None -> "" Details = [] diff --git a/src/app/Fake.DotNet.Testing.MSTest/paket.references b/src/app/Fake.DotNet.Testing.MSTest/paket.references index 2c8a7ddfd73..a934b5a7ddd 100644 --- a/src/app/Fake.DotNet.Testing.MSTest/paket.references +++ b/src/app/Fake.DotNet.Testing.MSTest/paket.references @@ -1,4 +1,5 @@ group netcore FSharp.Core -NETStandard.Library \ No newline at end of file +NETStandard.Library +BlackFox.VsWhere \ No newline at end of file diff --git a/src/app/Fake.DotNet.Testing.VSTest/VSTest.fs b/src/app/Fake.DotNet.Testing.VSTest/VSTest.fs index dde72b97ba1..8a8b2ddee45 100644 --- a/src/app/Fake.DotNet.Testing.VSTest/VSTest.fs +++ b/src/app/Fake.DotNet.Testing.VSTest/VSTest.fs @@ -11,6 +11,9 @@ open System.Text /// [omit] let private vsTestPaths = [| + @"[ProgramFilesX86]\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow" + @"[ProgramFilesX86]\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow" + @"[ProgramFilesX86]\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow" @"[ProgramFilesX86]\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow" @"[ProgramFilesX86]\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow" @"[ProgramFilesX86]\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"