Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions playground/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
CS1712: Type parameter 'type_parameter' has no matching typeparam tag in the XML comment on 'type_or_member' (but other type parameters do)
-->
<NoWarn>$(NoWarn),1573,1591,1712</NoWarn>

<OutDir Condition="'$(RepoRoot)' == ''">$(MSBuildThisFileDirectory)artifacts\$(MSBuildProjectName)\</OutDir>
</PropertyGroup>

<PropertyGroup>
Expand Down
2 changes: 2 additions & 0 deletions playground/mongo/Mongo.AppHost/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
var builder = DistributedApplication.CreateBuilder(args);

var db = builder.AddMongoDB("mongo")
#if !SKIP_DASHBOARD_REFERENCE
.WithMongoExpress(c => c.WithHostPort(3022))
#endif
.PublishAsContainer();

builder.AddProject<Projects.Mongo_ApiService>("api")
Expand Down
41 changes: 29 additions & 12 deletions tests/Aspire.Playground.Tests/AppHostTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using System.Text.RegularExpressions;
using Aspire.Hosting.ApplicationModel;
using Aspire.Hosting.Tests.Utils;
using Aspire.Workload.Tests;
using Microsoft.DotNet.XUnitExtensions;
using Microsoft.Extensions.DependencyInjection;
using Polly.Timeout;
Expand All @@ -19,12 +20,24 @@ namespace Aspire.Playground.Tests;

public class AppHostTests
{
private readonly ITestOutputHelper _testOutput;
private readonly TestOutputWrapper _testOutput;
private static readonly string? s_appHostNameFilter = Environment.GetEnvironmentVariable("TEST_PLAYGROUND_APPHOST_FILTER");
private static readonly string s_appHostBasePath = ComputeAppHostBasePath();

private static string ComputeAppHostBasePath()
{
var appHostBasePath = Path.Combine(AppContext.BaseDirectory, "playground", "artifacts");
if (!Directory.Exists(appHostBasePath))
{
appHostBasePath = Path.Combine(AppContext.BaseDirectory);
}

return appHostBasePath;
}

public AppHostTests(ITestOutputHelper testOutput)
{
_testOutput = testOutput;
_testOutput = new TestOutputWrapper(testOutput);
}

[Theory]
Expand All @@ -49,7 +62,11 @@ public async Task TestEndpointsReturnOk(TestEndpoints testEndpoints)
var appHostName = testEndpoints.AppHost!;
var resourceEndpoints = testEndpoints.ResourceEndpoints!;

var appHostPath = $"{appHostName}.dll";
// FIXME: find this path or set it outside
_testOutput.WriteLine($"Looking for app host '{appHostName}' in '{s_appHostBasePath}'");
var appHostPath = Directory.EnumerateFiles(s_appHostBasePath, $"{appHostName}.dll", SearchOption.AllDirectories).Single();

// var appHostPath = Path.Combine(_appHostBasePath, appHostName, "bin", "Debug", "net8.0", $"{appHostName}.dll");
var appHost = await DistributedApplicationTestFactory.CreateAsync(appHostPath, _testOutput);
var projects = appHost.Resources.OfType<ProjectResource>();
await using var app = await appHost.BuildAsync();
Expand Down Expand Up @@ -200,13 +217,13 @@ public static IList<TestEndpoints> GetAllTestEndpoints()
resourceEndpoints: new() { { "apiservice", ["/alive", "/health"] } }),

// Issue: https://github.com/dotnet/aspire/issues/5274
//new TestEndpoints("Mongo.AppHost",
//resourceEndpoints: new() { { "api", ["/alive", "/health", "/"] } },
//waitForTexts: [
//new ("mongo", "Waiting for connections"),
new TestEndpoints("Mongo.AppHost",
resourceEndpoints: new() { { "api", ["/alive", "/health", "/"] } },
waitForTexts: [
new ("mongo", "Waiting for connections"),
//new ("mongo-mongoexpress", "Mongo Express server listening"),
//new("api", "Application started.")
//]),
new("api", "Application started.")
]),
new TestEndpoints("MySqlDb.AppHost",
resourceEndpoints: new() { { "apiservice", ["/alive", "/health", "/catalog"] } },
waitForTexts: [
Expand Down Expand Up @@ -306,9 +323,9 @@ public static TheoryData<TestEndpoints> TestEndpoints()

private static IEnumerable<string> GetPlaygroundAppHostAssemblyPaths()
{
// All the AppHost projects are referenced by this project so we can find them by looking for all their assemblies in the base directory
return Directory.GetFiles(AppContext.BaseDirectory, "*.AppHost.dll")
.Where(fileName => !fileName.EndsWith("Aspire.Hosting.AppHost.dll", StringComparison.OrdinalIgnoreCase));
return Directory
.EnumerateFiles(s_appHostBasePath, "*.AppHost.dll", SearchOption.AllDirectories)
.Where(fileName => !fileName.EndsWith("Aspire.Hosting.AppHost.dll", StringComparison.OrdinalIgnoreCase));
}
}

Expand Down
93 changes: 57 additions & 36 deletions tests/Aspire.Playground.Tests/Aspire.Playground.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,22 @@
<PropertyGroup>
<TargetFramework>$(NetCurrent)</TargetFramework>

<!-- Set this explicitly so the project can build without arcade -->
<IsTestProject>true</IsTestProject>

<!-- no docker support on helix/windows yet -->
<RunTestsOnHelix Condition="'$(OS)' != 'Windows_NT'">true</RunTestsOnHelix>
<SkipTests Condition="'$(OS)' == 'Windows_NT'">true</SkipTests>

<DeployOutsideOfRepoSupportFilesRelativeDir>staging-archive\</DeployOutsideOfRepoSupportFilesRelativeDir>

<TestArchiveTestsDir>$(TestArchiveTestsDirForBuildOnHelixTests)</TestArchiveTestsDir>

<PlaygroundSourceDir>$(MSBuildThisFileDirectory)..\..\playground\</PlaygroundSourceDir>
<TestsSharedDir>$(MSBuildThisFileDirectory)..\Shared\</TestsSharedDir>
<RunSettingsFilePath>$(MSBuildThisFileDirectory).runsettings</RunSettingsFilePath>
</PropertyGroup>

<ItemGroup>
<!-- on helix, the file will be in the source directory, so it will get
picked up by msbuild by default -->
<Compile Condition="'$(RepoRoot)' != ''" Include="$(RepoRoot)src\Aspire.Hosting\Utils\PasswordGenerator.cs" />
<Compile Condition="'$(RepoRoot)' != ''" Include="$(RepoRoot)tests\Aspire.Hosting.Tests\Utils\LoggerNotificationExtensions.cs" />
<Compile Include="$(RepoRoot)src\Aspire.Hosting\Utils\PasswordGenerator.cs" />
<Compile Include="$(RepoRoot)tests\Aspire.Hosting.Tests\Utils\LoggerNotificationExtensions.cs" />
<Compile Include="$(TestsSharedDir)Logging\*.cs" />
<Compile Include="$(TestsSharedDir)WorkloadTesting\TestOutputWrapper.cs" />
<Compile Include="$(TestsSharedDir)WorkloadTesting\EnvironmentVariables.cs" />

<!-- FIXME: change to simple projectrefs -->
<AspireProjectOrPackageReference Include="Aspire.Hosting" />
<AspireProjectOrPackageReference Include="Aspire.Hosting.NodeJs" />
<AspireProjectOrPackageReference Include="Aspire.Hosting.Testing" />
Expand All @@ -34,34 +27,62 @@
<PackageReference Include="Microsoft.Extensions.Diagnostics.Testing" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" />

<ProjectReference Include="$(PlaygroundSourceDir)AzureStorageEndToEnd/AzureStorageEndToEnd.AppHost/AzureStorageEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)CosmosEndToEnd/CosmosEndToEnd.AppHost/CosmosEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)ParameterEndToEnd/ParameterEndToEnd.AppHost/ParameterEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)PostgresEndToEnd/PostgresEndToEnd.AppHost/PostgresEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)ProxylessEndToEnd/ProxylessEndToEnd.AppHost/ProxylessEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)Qdrant/Qdrant.AppHost/Qdrant.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)SqlServerEndToEnd/SqlServerEndToEnd.AppHost/SqlServerEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)TestShop/TestShop.AppHost/TestShop.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)keycloak/Keycloak.AppHost/Keycloak.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)milvus/MilvusPlayground.AppHost/MilvusPlayground.AppHost.csproj" />

<!-- Issue: https://github.com/dotnet/aspire/issues/5274 -->
<!-- Only `dotnet run` startup checked -->
<ProjectReference Include="$(PlaygroundSourceDir)mongo/Mongo.AppHost/Mongo.AppHost.csproj" />

<ProjectReference Include="$(PlaygroundSourceDir)mysql/MySqlDb.AppHost/MySqlDb.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)nats/Nats.AppHost/Nats.AppHost.csproj" />
<ProjectReference Include="$(PlaygroundSourceDir)seq/Seq.AppHost/Seq.AppHost.csproj" />

<Using Include="Aspire.Hosting.Testing" />
</ItemGroup>

<!-- Local run -->
<ItemGroup Condition="'$(ArchiveTests)' != 'true'">
<ProjectReference Include="$(RepoRoot)playground\AzureStorageEndToEnd/AzureStorageEndToEnd.AppHost/AzureStorageEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\CosmosEndToEnd\CosmosEndToEnd.AppHost\CosmosEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\ParameterEndToEnd/ParameterEndToEnd.AppHost/ParameterEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\PostgresEndToEnd/PostgresEndToEnd.AppHost/PostgresEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\ProxylessEndToEnd\ProxylessEndToEnd.AppHost\ProxylessEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\Qdrant\Qdrant.AppHost\Qdrant.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\SqlServerEndToEnd/SqlServerEndToEnd.AppHost/SqlServerEndToEnd.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\TestShop\TestShop.AppHost\TestShop.AppHost.csproj" />

<ProjectReference Include="$(RepoRoot)playground\keycloak/Keycloak.AppHost/Keycloak.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\milvus/MilvusPlayground.AppHost/MilvusPlayground.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\mongo\Mongo.AppHost\Mongo.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\mysql\MySqlDb.AppHost\MySqlDb.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\nats\Nats.AppHost\Nats.AppHost.csproj" />
<ProjectReference Include="$(RepoRoot)playground\seq\Seq.AppHost\Seq.AppHost.csproj" />
</ItemGroup>

<ItemGroup Condition="'$(ArchiveTests)' == 'true'" Label="Prepare archive dir for helix">
<None Include="$(MSBuildProjectDirectory)\**\*" Link="$(DeployOutsideOfRepoSupportFilesRelativeDir)tests\$(MSBuildProjectName)\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)src\Aspire.Hosting\Utils\PasswordGenerator.cs" Link="$(DeployOutsideOfRepoSupportFilesRelativeDir)tests\$(MSBuildProjectName)\PasswordGenerator.cs" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)tests\Aspire.Hosting.Tests\Utils\LoggerNotificationExtensions.cs" Link="$(DeployOutsideOfRepoSupportFilesRelativeDir)tests\$(MSBuildProjectName)\LoggerNotificationExtensions.cs" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)src\Shared\**\*" Link="$(DeployOutsideOfRepoSupportFilesRelativeDir)src\Shared\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\**\*" Link="$(DeployOutsideOfRepoSupportFilesRelativeDir)playground\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\Playground.ServiceDefaults\**\*" Link="playground\Playground.ServiceDefaults\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\AzureStorageEndToEnd\**\*" Link="playground\AzureStorageEndToEnd\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\CosmosEndToEnd\**\*" Link="playground\CosmosEndToEnd\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\ParameterEndToEnd/**\*" Link="playground\ParameterEndToEnd\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\PostgresEndToEnd/**\*" Link="playground\PostgresEndToEnd\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\ProxylessEndToEnd\**\*" Link="playground\ProxylessEndToEnd\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\SqlServerEndToEnd\**\*" Link="playground\SqlServerEndToEnd\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\Qdrant\**\*" Link="playground\Qdrant\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\TestShop\**\*" Link="playground\TestShop\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />

<None Include="$(RepoRoot)playground\keycloak\**\*" Link="playground\keycloak\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\milvus\**\*" Link="playground\milvus\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\mongo\**\*" Link="playground\mongo\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\mysql\**\*" Link="playground\mysql\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\nats\**\*" Link="playground\nats\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
<None Include="$(RepoRoot)playground\seq\**\*" Link="playground\seq\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />

<None Include="$(RepoRoot)playground\*" Link="playground\%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />

<None Include="build-playground-apps.proj" Link="build-playground-apps.proj" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

<Target Name="_GenerateRunTestsScript" BeforeTargets="ZipTestArchive" Condition="'$(ArchiveTests)' == 'true'">

<ItemGroup>
<_RunScriptCommand Include="#!/usr/bin/env bash" />
<_RunScriptCommand Include="export TestsRunningOutsideOfRepo=true" />
<_RunScriptCommand Include="export SkipDashboardProjectReference=true" />
<_RunScriptCommand Include="dotnet build -bl:$HELIX_WORKITEM_UPLOAD_ROOT/logs/build-playground-apps.binlog build-playground-apps.proj &amp;&amp; dotnet test Aspire.Playground.Tests.dll -s .runsettings --ResultsDirectory:${HELIX_WORKITEM_UPLOAD_ROOT}/logs" />
</ItemGroup>

<WriteLinesToFile Lines="@(_RunScriptCommand)" File="$(OutDir)RunTests.sh" Overwrite="true" />

</Target>

</Project>
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Reflection;
Expand Down Expand Up @@ -37,10 +37,6 @@ public static async Task<IDistributedApplicationTestingBuilder> CreateAsync(stri
builder.Services.AddLogging(logging =>
{
logging.ClearProviders();
logging.AddSimpleConsole(configure =>
{
configure.SingleLine = true;
});
logging.AddFakeLogging();
if (testOutput is not null)
{
Expand Down
15 changes: 15 additions & 0 deletions tests/Aspire.Playground.Tests/build-playground-apps.proj
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<Project>
<Target Name="Build">
<ItemGroup>
<AdditionalProperties Include="TestsRunningOutsideOfRepo=true" />
<AdditionalProperties Include="SkipDashboardProjectReference=true" />

<_AppHostProject Include="playground\**\*AppHost.csproj" />
</ItemGroup>

<Message Text="proj: %(_AppHostProject.Identity)" Importance="High" />
<MSBuild Projects="@(_AppHostProject)" Targets="Restore" Properties="@(AdditionalProperties)" />
<MSBuild Projects="@(_AppHostProject)" Targets="Build" Properties="@(AdditionalProperties);__RANDOM_PROPERTY_TO_FORCE_PROJECT_REEVALUATION__=234" />
</Target>

</Project>
7 changes: 7 additions & 0 deletions tests/Aspire.Playground.Tests/xunit.runner.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"$schema": "https://xunit.net/schema/current/xunit.runner.schema.json",
"diagnosticMessages": true,
"longRunningTestSeconds": 120,
"parallelizeAssembly": false,
"parallelizeTestCollections": false
}
6 changes: 3 additions & 3 deletions tests/Shared/WorkloadTesting/TestOutputWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@

namespace Aspire.Workload.Tests;

public class TestOutputWrapper(ITestOutputHelper? testOutputHelper = null, IMessageSink? messageSink = null) : ITestOutputHelper
public class TestOutputWrapper(ITestOutputHelper? testOutputHelper = null, IMessageSink? messageSink = null, bool alwaysWriteToConsole = false) : ITestOutputHelper
{
public void WriteLine(string message)
{
testOutputHelper?.WriteLine(message);
messageSink?.OnMessage(new DiagnosticMessage(message));

if (EnvironmentVariables.ShowBuildOutput)
if (alwaysWriteToConsole || EnvironmentVariables.ShowBuildOutput)
{
Console.WriteLine(message);
}
Expand All @@ -24,7 +24,7 @@ public void WriteLine(string format, params object[] args)
{
testOutputHelper?.WriteLine(format, args);
messageSink?.OnMessage(new DiagnosticMessage(string.Format(CultureInfo.CurrentCulture, format, args)));
if (EnvironmentVariables.ShowBuildOutput)
if (alwaysWriteToConsole || EnvironmentVariables.ShowBuildOutput)
{
Console.WriteLine(format, args);
}
Expand Down
6 changes: 4 additions & 2 deletions tests/helix/send-to-helix-buildonhelixtests.targets
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<ItemGroup>
<HelixPreCommand Include="$(_EnvVarSetKeyword) SkipDashboardProjectReference=true" />
<HelixPreCommand Include="$(_EnvVarSetKeyword) TestsRunningOutsideOfRepo=true" />
<HelixPreCommand Include="$(_EnvVarSetKeyword) SHOW_BUILD_OUTPUT=true" />

<HelixPreCommand Condition="'$(OS)' == 'Windows_NT'" Include="set NUGET_PACKAGES=%HELIX_WORKITEM_ROOT%\nuget-cache\" />
<HelixPreCommand Condition="'$(OS)' != 'Windows_NT'" Include="export NUGET_PACKAGES=$HELIX_WORKITEM_ROOT/nuget-cache/" />
Expand All @@ -32,7 +33,7 @@
<_TestBlameArguments Include="--blame-crash-dump-type full" />

<!-- Using `dotnet test` for the project directly here -->
<_TestRunCommandArguments Include="dotnet test -s .runsettings --results-directory $(_HelixLogsPath)" />
<_TestRunCommandArguments Include="dotnet test -s .runsettings --results-directory $(_HelixLogsPath) -v n" />
<_TestRunCommandArguments Include="@(_TestBlameArguments, ' ')" />
</ItemGroup>

Expand All @@ -54,7 +55,8 @@

<PreCommands>$(_EnvVarSetKeyword) &quot;TEST_NAME=%(FileName)&quot; $(_ShellCommandSeparator) $(_EnvVarSetKeyword) &quot;$(_SetPathEnvVar)&quot;</PreCommands>

<Command>cd tests/%(FileName) %3B $(_TestRunCommand)</Command>
<!--<Command>cd tests/%(FileName) %3B $(_TestRunCommand)</Command>-->
<Command>chmod +x RunTests.sh; ./RunTests.sh</Command>
<Timeout>00:15:00</Timeout>
<Timeout Condition="'%(FileName)' == 'Aspire.Playground.Tests'">00:25:00</Timeout>

Expand Down
6 changes: 3 additions & 3 deletions tests/helix/send-to-helix-ci.proj
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<Project>
<Target Name="Test">
<ItemGroup>
<TestCategory Include="basictests" />
<!--<TestCategory Include="basictests" />-->
<!-- no docker on windows -->
<TestCategory Condition="'$(OS)' != 'Windows_NT'" Include="endtoendtests" />
<TestCategory Include="workloadtests" />
<!--<TestCategory Condition="'$(OS)' != 'Windows_NT'" Include="endtoendtests" />-->
<!--<TestCategory Include="workloadtests" />-->
<!-- no docker on windows -->
<TestCategory Condition="'$(OS)' != 'Windows_NT'" Include="buildonhelixtests" />

Expand Down