art*_*art 5 api nunit asp.net-core
我创建了 asp.net core 项目 - dotnet new web api-\n Visual Studio Code(甚至没有调试器支持\n带有 x86 系统的 c# 扩展)。\n然后我需要实现 Nunit 测试。\n我dotnet new nunit在项目文件夹之一中使用命令创建\n以及控制器、存储库、模型文件夹。\n然后我在 test.csroj 中传递了对外部项目的引用。\n事实上,我需要传递\n到我的 main.csproj 文件\n这些自动创建的依赖项以在我的项目中使用\nNunit 类testfixture 类文件?!
<ItemGroup>\n <PackageReference Include="NUnit" Version="3.11.0"/> \n <PackageReference Include="NUnit3TestAdapter" Version="3.11.0"/>\n <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0"/>\n</ItemGroup>\nRun Code Online (Sandbox Code Playgroud)\n\n所以看来我可以从 \ntest.csproj 中删除这些引用,它们是在 dotnet new nunit 期间创建的(事实上我离开了,\na 如果没有这些重复,它可能也无法工作)...\n事实上,这里我得到了两个自动生成的文件使用 main 方法,\n 除了基本 Program.cs 文件中的 Main 之外 - 所以我需要注释\n最后一种情况下的 Main 来运行 nunit 测试。\n这里似乎是主要问题,我不知道如何解决。\n这-
\n\n// <auto-generated> This file has been auto generated. </auto-generated>\n using System;\n [Microsoft.VisualStudio.TestPlatform.TestSDKAutoGeneratedCode]\n class AutoGeneratedProgram {static void Main(string[] args){}}\nRun Code Online (Sandbox Code Playgroud)\n\n- 出现在 \xd0\xb2 Test.Program.cs(..testfolder\\obj)、\n 和 MainProject.Program.cs (..MainProject\\obj\\Debug\\netcoreapp2.2) 中。\n在 Test 中添加.csproj - <GenerateProgramFile>false</GenerateProgramFile>,\n没有解决问题\n确实错误\n通过GenerateAssemblyInfo自动生成解决了。
<PropertyGroup>\n <TargetFramework>netcoreapp2.2</TargetFramework>\n <IsPackable>false</IsPackable>\n <GenerateAssemblyInfo>false</GenerateAssemblyInfo>\n <GenerateProgramFile>false</GenerateProgramFile>\n</PropertyGroup>\nRun Code Online (Sandbox Code Playgroud)\n\n事实上,这个资源 \n https://andrewlock.net/fixing-the-error-program-has-more-than-one-entry-point-define-for-console-apps-containing-xunit-tests/告诉它应解决 CS0017 程序定义了多个入口点。使用 /main 进行编译以指定包含入口点的类型。\n虽然我没有尝试使用这样的写法
\n\n<GenerateProgramFile Condition="\'$(GenerateProgramFile)\' == \'\'">true</GenerateProgramFile>\nRun Code Online (Sandbox Code Playgroud)\n\n正如我建议的那样,它与之前的提案相同。\n此外,在某些组合中,我的测试自动生成\nMain() 依赖于外部项目 obj Main(),因此在 Program.cs 中注释了 Main() 后,它无法启动 \整个。\n我也无法添加 Exe \xd0\xb2 MyProject.csproj \nas 它是 Web api,而不是控制台项目。\n因此,唯一的半决定是使用 Main() 临时免除自动生成的文件,\n并且不注释 main() 程序。 cs\n要<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0"/>在 MainProject.csproj\n 中删除并保留
<ItemGroup>\n <PackageReference Include="NUnit" Version="3.11.0"/>\n <PackageReference Include="NUnit3TestAdapter" Version="3.11.0"/>\nRun Code Online (Sandbox Code Playgroud)\n\n...\n Test.csproj 中的所有三个项目。\n 因此,为了 dotnet test 和 dotnet run,我需要在 Testsubfolder 中删除 obj 文件夹,\n 或者只删除 BooksApi\\Tests 中的 Tests.Program.cs 文件运行测试后出现的 \\obj\\Debug \\netcoreapp2.2\n???\n 该怎么做才能解决 Main 的自动生成问题???
\n| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |