File: ProjectConfigurationDescriptionTest.cs
Web Access
Project: ..\..\..\test\Microsoft.NET.Build.Tests\Microsoft.NET.Build.Tests.csproj (Microsoft.NET.Build.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace Microsoft.NET.Build.Tests
{
    public class ProjectConfigurationDescription : SdkTest
    {
        public ProjectConfigurationDescription(ITestOutputHelper log) : base(log)
        {
        }
 
        [RequiresMSBuildVersionFact("17.2.1.25201")]
        public void ProjectConfigurationDescription_DefaultTest()
        {
            const string errorTargetFramework = "net48";
 
            var testProj = new TestProject()
            {
                Name = "MultitargetingConfigurationDescription",
                TargetFrameworks = $"{ToolsetInfo.CurrentTargetFramework};{errorTargetFramework}",
                IsExe = true,
                IsSdkProject = true
            };
 
            var testAsset = _testAssetsManager.CreateTestProject(testProj);
            File.WriteAllText(Path.Combine(testAsset.Path, testProj.Name, $"{testProj.Name}.cs"), @"
            using System;
            class Program
            {
                static void Main(string[] args)
                {
                    #if NET472_OR_GREATER
                        Consol.WriteLine(""NET472"");
                    #endif
                    #if NETCOREAPP
                        Console.WriteLine(""NETCOREAPP"");
                    #endif
                }
            }");
 
            var buildCommand = new BuildCommand(Log, Path.Combine(testAsset.Path, testProj.Name));
            buildCommand
                .Execute()
                .Should()
                .Fail()
                .And
                .HaveStdOutContaining($"::TargetFramework={errorTargetFramework}");
        }
    }
}