Skip to content

Commit

Permalink
RunVSTest: Allow overriding the ToolExe/ToolPath
Browse files Browse the repository at this point in the history
  • Loading branch information
dfederm committed Mar 28, 2024
1 parent e6e1e03 commit aa0dbc8
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 33 deletions.
10 changes: 9 additions & 1 deletion src/RunTests/RunVSTestTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,15 @@ public class RunVSTestTask : ToolTask
/// <inheritdoc/>
protected override string GenerateFullPathToTool()
{
return $@"{Environment.GetEnvironmentVariable("VSINSTALLDIR")}\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe";
// Attempt to look in the VS installation dir
string vsInstallDir = Environment.GetEnvironmentVariable("VSINSTALLDIR");
if (!string.IsNullOrEmpty(vsInstallDir))
{
return $@"{vsInstallDir}\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe";
}

// Fallback to looking for the tool on the PATH
return ToolExe;
}

/// <inheritdoc/>
Expand Down
64 changes: 32 additions & 32 deletions src/RunTests/build/Microsoft.Build.RunVSTest.targets
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,36 @@
Licensed under the MIT license.
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="Microsoft.Build.RunVSTestTask" AssemblyFile="$(MSBuildThisFileDirectory)netstandard2.0\Microsoft.Build.RunVSTest.dll" Condition="'$(IsTestProject)' == 'true' and '$(MSBuildRuntime)' != 'Core'"/>
<Target Name="RunVSTest" AfterTargets="Test" Condition="'$(IsTestProject)' == 'true' and '$(MSBuildRuntime)' != 'Core'">
<RunVSTestTask
TestFileFullPath="$(TargetPath)"
VSTestSetting="$(VSTestSetting)"
VSTestTestAdapterPath="$(VSTestTestAdapterPath)"
VSTestFramework="$(VSTestFramework)"
VSTestPlatform="$(VSTestPlatform)"
VSTestTestCaseFilter="$(VSTestTestCaseFilter)"
VSTestLogger="$(VSTestLogger)"
VSTestListTests="$(VSTestListTests)"
VSTestDiag="$(VSTestDiag)"
VSTestResultsDirectory="$(VSTestResultsDirectory)"
VSTestVerbosity="$(VSTestVerbosity)"
VSTestCollect="$(VSTestCollect)"
VSTestBlame="$(VSTestBlame)"
VSTestBlameCrash="$(VSTestBlameCrash)"
VSTestBlameCrashDumpType="$(VSTestBlameCrashDumpType)"
VSTestBlameCrashCollectAlways="$(VSTestBlameCrashCollectAlways)"
VSTestBlameHang="$(VSTestBlameHang)"
VSTestBlameHangDumpType="$(VSTestBlameHangDumpType)"
VSTestBlameHangTimeout="$(VSTestBlameHangTimeout)"
VSTestTraceDataCollectorDirectoryPath="$(VSTestTraceDataCollectorDirectoryPath)"
VSTestNoLogo="$(VSTestNoLogo)"
VSTestArtifactsProcessingMode="$(VSTestArtifactsProcessingMode)"
VSTestSessionCorrelationId="$(VSTestSessionCorrelationId)"
/>
</Target>
<Target Name="ForceRunVSTest" AfterTargets="Test" Condition="'$(IsTestProject)' == 'true' and '$(MSBuildRuntime)' == 'Core'" >
<CallTarget Targets="VSTest" />
</Target>
<Project>
<UsingTask TaskName="Microsoft.Build.RunVSTestTask" AssemblyFile="$(MSBuildThisFileDirectory)netstandard2.0\Microsoft.Build.RunVSTest.dll" Condition="'$(IsTestProject)' == 'true' and '$(MSBuildRuntime)' != 'Core'"/>
<Target Name="RunVSTest" AfterTargets="Test" Condition="'$(IsTestProject)' == 'true' and '$(MSBuildRuntime)' != 'Core'">
<RunVSTestTask ToolExe="$(VSTestToolExe)"
ToolPath="$(VSTestToolPath)"
TestFileFullPath="$(TargetPath)"
VSTestSetting="$(VSTestSetting)"
VSTestTestAdapterPath="$(VSTestTestAdapterPath)"
VSTestFramework="$(VSTestFramework)"
VSTestPlatform="$(VSTestPlatform)"
VSTestTestCaseFilter="$(VSTestTestCaseFilter)"
VSTestLogger="$(VSTestLogger)"
VSTestListTests="$(VSTestListTests)"
VSTestDiag="$(VSTestDiag)"
VSTestResultsDirectory="$(VSTestResultsDirectory)"
VSTestVerbosity="$(VSTestVerbosity)"
VSTestCollect="$(VSTestCollect)"
VSTestBlame="$(VSTestBlame)"
VSTestBlameCrash="$(VSTestBlameCrash)"
VSTestBlameCrashDumpType="$(VSTestBlameCrashDumpType)"
VSTestBlameCrashCollectAlways="$(VSTestBlameCrashCollectAlways)"
VSTestBlameHang="$(VSTestBlameHang)"
VSTestBlameHangDumpType="$(VSTestBlameHangDumpType)"
VSTestBlameHangTimeout="$(VSTestBlameHangTimeout)"
VSTestTraceDataCollectorDirectoryPath="$(VSTestTraceDataCollectorDirectoryPath)"
VSTestNoLogo="$(VSTestNoLogo)"
VSTestArtifactsProcessingMode="$(VSTestArtifactsProcessingMode)"
VSTestSessionCorrelationId="$(VSTestSessionCorrelationId)" />
</Target>
<Target Name="ForceRunVSTest" AfterTargets="Test" Condition="'$(IsTestProject)' == 'true' and '$(MSBuildRuntime)' == 'Core'" >
<CallTarget Targets="VSTest" />
</Target>
</Project>

0 comments on commit aa0dbc8

Please sign in to comment.