Skip to content
代码片段 群组 项目
WebApiTemplateTest.cs 2.7 KB
更新 更旧
  • 了解如何忽略特定修订
  • // Copyright (c) .NET Foundation. All rights reserved.
    
    // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
    
    
    using System.Threading.Tasks;
    using Templates.Test.Helpers;
    
    using Xunit;
    
            public WebApiTemplateTest(ProjectFactoryFixture factoryFixture, ITestOutputHelper output)
    
                FactoryFixture = factoryFixture;
                Output = output;
    
            public ProjectFactoryFixture FactoryFixture { get; }
    
            public ITestOutputHelper Output { get; }
    
            public Project Project { get; set; }
    
            [Theory]
            [InlineData(null)]
            [InlineData("F#")]
            public async Task WebApiTemplateAsync(string languageOverride)
    
                Project = await FactoryFixture.GetOrCreateProject("webapi" + (languageOverride == "F#" ? "fsharp" : "csharp"), Output);
    
                var createResult = await Project.RunDotNetNewAsync("webapi", language: languageOverride);
    
                Assert.True(0 == createResult.ExitCode, ErrorMessages.GetFailedProcessMessage("create/restore", Project, createResult));
    
                var publishResult = await Project.RunDotNetPublishAsync();
                Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult));
    
                // Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release
    
                // The output from publish will go into bin/Release/netcoreappX.Y/publish and won't be affected by calling build
    
                // later, while the opposite is not true.
    
                var buildResult = await Project.RunDotNetBuildAsync();
                Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("build", Project, buildResult));
    
                using (var aspNetProcess = Project.StartBuiltProjectAsync())
    
                    Assert.False(
                        aspNetProcess.Process.HasExited,
                        ErrorMessages.GetFailedProcessMessageOrEmpty("Run built project", Project, aspNetProcess.Process));
    
    
    Pranav K's avatar
    Pranav K 已提交
                    await aspNetProcess.AssertOk("weatherforecast");
    
                    await aspNetProcess.AssertNotFound("/");
                }
    
                using (var aspNetProcess = Project.StartPublishedProjectAsync())
                {
                    Assert.False(
                        aspNetProcess.Process.HasExited,
                        ErrorMessages.GetFailedProcessMessageOrEmpty("Run published project", Project, aspNetProcess.Process));
    
    
    
    Pranav K's avatar
    Pranav K 已提交
                    await aspNetProcess.AssertOk("weatherforecast");
    
                    await aspNetProcess.AssertNotFound("/");