当前位置: 首页 > 面试题库 >

.net测试的解决方法挂起“正在开始执行测试,请稍候...”

司空镜
2023-03-14
问题内容

我正在尝试dotnet test从我们的Jenkins构建服务器上的命令行执行,但是它挂了:

Starting test execution, please wait...

在本地运行此命令时工作正常

如果我切换到使用dotnet xunit它,则失败,并显示以下内容:

15:42:57 Locating binaries for framework netcoreapp2.1...
15:42:58 Running .NET Core 2.1 tests for framework netcoreapp2.1...
15:42:58 The specified framework version '2.1' could not be parsed
15:42:58 The specified framework 'Microsoft.NETCore.App', version '2.1' was not found.
15:42:58   - Check application dependencies and target a framework version installed at:
15:42:58       C:\Program Files\dotnet\
15:42:58   - Installing .NET Core prerequisites might help resolve this problem:
15:42:58       http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
15:42:58   - The .NET Core framework and SDK can be installed from:
15:42:58       https://aka.ms/dotnet-download
15:42:58   - The following versions are installed:
15:42:58       2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
15:42:58       2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
15:42:58       2.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
15:42:58       2.1.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
15:42:58       2.1.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

根据错误消息,我们已经在服务器上安装了dotnet core SDK,但似乎缺少了一些东西。

我的测试项目如下所示:

<Project Sdk="Microsoft.NET.Sdk">    
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>    
    <IsPackable>false</IsPackable>
  </PropertyGroup>    
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.1.1" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
    <PackageReference Include="Moq" Version="4.10.0" />
    <PackageReference Include="RichardSzalay.MockHttp" Version="5.0.0" />
    <PackageReference Include="xunit" Version="2.3.1" />
    <PackageReference Include="xunit.runner.console" Version="2.4.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
    <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
  </ItemGroup>        
</Project>

问题答案:

版本控制是一个红色鲱鱼,事实证明这是一个更简单的问题。我的测试正在测试异步控制器方法,而我的非异步测试正在执行:

var result = controller.PostAsync(request).Result;

一旦我将测试本身更改为使用异步/等待模式,它们就可以正常工作:

var result = await controller.PostAsync(request);

使用该dotnet test --verbosity d参数可以帮助我诊断问题。使用此功能时,它输出的是通过的某些测试,而不仅仅是“正在开始执行测试,请稍候”。有趣的是,每次我运行该命令时,它都会执行不同数量的测试,然后再被卡住。这表明可能存在某种线程死锁问题,导致我找到了解决方案。我仍然不确定为什么该命令在我的本地计算机上可以正常运行,而在我们的Jenkins从机上却不能运行。



 类似资料:
  • 22.13.1.执行测试 测试从main构建过程中分离出来的,运行在一个单独的JVM中执行.Test任务允许控制这些如何发生. 有许多属性用于控制测试过程如何启动.这包括使用诸如系统属性,JVM参数和Java可执行文件。 可以指定是否要并行执行测试.Gradle通过同时运行多个测试进程提供并行执行测试.每个测试进程在同一时间只能执行一个测试,为了充分利用这一特性,一般不需要为tests任务做什么特

  • 本文向大家介绍详解.Net单元测试方法,包括了详解.Net单元测试方法的使用技巧和注意事项,需要的朋友参考一下 1、测试异常 可以直接对方法进行异常测试,也可以对模拟对象进行异常测试,但是,对模拟对象进行异常测试,很少用,所以,这里就介绍对方法的异常测试。请看如下代码,当用户名为空的时候,抛出异常。 例如 测试代码如下 2、测试返回值 这里用到了一个LastCall的一个类,比较常用,一些辅助测试

  • 使用maven对Spring应用程序进行单元测试后,在完成构建时遇到问题。我注意到mvn安装没有完成,在运行了所有单元测试之后,它似乎挂起了。如果运行我将从cmd行获得要完成的测试,但构建挂起 这就是它的结尾。两个线程正在运行,不确定我在那里做了什么。无论如何,为了排除故障,我删除了所有测试并让程序完全构建。如果我运行,我就可以完成它。最后,我添加了一个JUnit测试,它本质上是一个system.

  • 对Kotlin来说有点新,并测试它...我试图使用suspend方法测试dao对象包装器,该方法对SQL返回对象使用awaitFirst()。然而,当我为它编写单元测试时,它只是停留在一个循环中。我认为这是由于awaitFirst()不在相同的测试范围内 这是否意味着withContext将利用一个新线程,并在其他地方重用旧线程?这并没有真正优化任何东西,因为我仍然会有一个线程被阻塞,而不管产生一

  • 我们创建并修改了“首页”和“帮助”页面的内容,下面要添加“关于”页面。做这样的改动时,最好编写自动化测试确认实现的方法正确。对本书开发的应用来说,我们编写的测试组件有两个作用:其一,是一种安全防护措施;其二,作为源码的文档。虽然要编写额外的代码,但是如果方法得当,测试能协助我们快速开发,因为有了测试查找问题所用的时间会变少。不过,我们要善于编写测试才行,所以要尽早开始练习。 几乎每个 Rails

  • 当我运行testing.xml时,testNG适合于它的运行,但当运行gradle测试任务时,它不执行测试 buildscript{ext{springBootVersion='1.4.1.release'}存储库{mavenCentral()}依赖项{classpath(“org.springframework.boot:spring-boot-gradle-plugin:${springBoo