GivenThatWeWantToPackAProjectTool.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT license.
  3. using Microsoft.NET.Build.Tasks;
  4. namespace Microsoft.NET.Build.Tests
  5. {
  6. public class GivenThatWeWantToPackAProjectTool : SdkTest
  7. {
  8. public GivenThatWeWantToPackAProjectTool(ITestOutputHelper log) : base(log)
  9. {
  10. }
  11. [Fact]
  12. public void It_packs_project_tools_targeting_netcoreapp2_2()
  13. {
  14. TestProject toolProject = new()
  15. {
  16. Name = "TestToolNetCore22",
  17. TargetFrameworks = "netcoreapp2.2",
  18. IsExe = true
  19. };
  20. toolProject.AdditionalProperties.Add("PackageType", "DotnetCliTool");
  21. var asset = _testAssetsManager
  22. .CreateTestProject(toolProject, toolProject.Name);
  23. var packCommand = new PackCommand(Log, Path.Combine(asset.TestRoot, toolProject.Name));
  24. packCommand.Execute().Should().Pass();
  25. }
  26. [Fact]
  27. public void It_fails_to_pack_project_tools_targeting_netcoreapp3_0()
  28. {
  29. TestProject toolProject = new()
  30. {
  31. Name = "TestTool",
  32. TargetFrameworks = "netcoreapp3.0",
  33. IsExe = true
  34. };
  35. toolProject.AdditionalProperties.Add("PackageType", "DotnetCliTool");
  36. var asset = _testAssetsManager
  37. .CreateTestProject(toolProject, toolProject.Name);
  38. var result = new PackCommand(Log, Path.Combine(asset.TestRoot, toolProject.Name)).Execute();
  39. result
  40. .Should()
  41. .Fail()
  42. .And.HaveStdOutContaining(Strings.ProjectToolOnlySupportTFMLowerThanNetcoreapp22);
  43. }
  44. }
  45. }