测试.NET框架项目所需的最小工具
我试图为Windows Runner上的.NET Framework项目设置CI/CD管道.对于本地开发,Visual Studio捆绑包包含使用MSBuild.exe和VSTest.console.exe> 在命令行上运行构建和测试所需的所有工具和设置 设置管道时,为避免了Visual Studio庞大尺寸的开销,我们发现了Visual Studio构建的工具,其中包含MSBUILD.EXE,使我们可以编译DLL进行测试.没有可用的独立版本的VSTest.console.exe,但是我们能够使用完全在跑步者上安装Visual Studio时,我们能够使vstest.console.exe与同一命令一起使用. 使用Windows Runner上使用vstest.console.exe运行测试所需的最小工具是什么?或者在不完全安装Visual Studio的情况下,在CI/CD上运行测试的正确方法是什么? 解决方案 在GitHub上,我们一直在使用简单地调用dotnet命
28 2024-04-24
编程技术问答社区
vstest在运行某些特定测试时崩溃了
当我在解决方案中运行所有测试(约800个测试)时,一段时间后,带有错误的弹出窗口显示为vstest.execution.x86.exe已停止工作. 我得到的一些问题细节的示例在这里: Problem signature: Problem Event Name: CLR20r3 Problem Signature 01: vstest.executionengine.x86.exe Problem Signature 02: 14.0.23107.0 Problem Signature 03: 559b7b6c Problem Signature 04: mscorlib Problem Signature 05: 4.6.1076.0 Problem Signature 06: 56d79fa2 Problem Signature 07: 0 Problem Signature 08: ffffffff Problem Signat
14 2024-04-24
编程技术问答社区
从VSTest.Console.exe向单元测试传递参数或选项
我可以从命令行成功运行VS单元测试(因此是从构建计算机上的构建). VSTest.Console.EXE "MyTest.dll" /logger:trx /platform:x64 /inIsolation 我还可以滤除我不想在某个环境上执行/TestCaseFilter选项的任何必需测试: VSTest.Console.EXE "MyTest.dll" /TestCaseFilter:Name!=Verify_DigitallySigned 这是不是以运行"如果数字签名"测试的"检查". 这样,我可以滤除所需的测试用例/s的集合. 但是,我想要的是让单位测试知道是否不需要某些测试(断言).例如传递"/DontTestSigning"参数.这样,单元测试(用C ++或C#编写)将看到此类参数/选项,并且不会进行其他断言,从而阻止了非现实生产构建的构建失败(例如PR构建). 我看到 /testsettings vstest.console.exe(以
26 2024-04-21
编程技术问答社区
vstest.console.exe无法加载文件或汇编microsoft.testplatform.coreutilites
我正在尝试使用最新版本的Visual Studio(2022)设置C#项目;这是Windows 10上的.NET 6,这是一个简单的控制台程序,我已经设置了该项目和相应的单元测试项目,基本上遵循 https://learn.microsoft.com/en -us/visualstudio/test/trackthrough-running-and-onnunning-unit-tests-for-maniged-code?view = vs-2022 所以我对该教程项目有一些同构. 从Visual Studio内部运行时,单元测试正常工作. 现在我也想从命令行运行它们. vstest.console bin\Debug\net6.0\foo.dll 给出 testhost进程出现错误:未手动异常. system.io.io.filenotfoundException:无法加载文件或汇编'microsoft.testplatform.Coreutilites
16 2024-04-19
编程技术问答社区
在Azure DevOps版本中,当启用 "指定批次大小 "时,控制台输出缺失。
我们在Azure DevOps中运行(基于Nunit)的大型测试集.最近,我们在Visual Studio测试任务中启用了"重播失败测试"选项.首先,由于处理自定义测试显示名称(我们的测试所需的)错误,因此这无效.测试仍然只运行一次.但是,通过设置批次大小终于正确地重试. 它很棒,除了一个奇怪的效果...没有明显的原因,详细的日志不再显示我们自己的自定义输出(由Console.Writeline生成).这以前没有问题.我们现在得到的只是默认输出和最终测试结果. 未经"指定批处理大小"的日志登录更具信息性: 日志本身仍然写着:我们知道(几乎)所有信息也包括在每个测试中.这在测试结果中显示: 另外,只需禁用批处理大小选项,就可以再次显示日志. 有人知道是什么原因导致了这种行为,以及如何修复它?到目前为止,在Console.Writeline/trace.writeline/debug.writeline等之间切换无济于事,我还没有找到有关此特定问题的其他其他信息...并且在某些情
8 2024-04-15
编程技术问答社区
vstest.console.exe没有发现xunit测试。
我正在整理一个新的单元测试,以作为CI工作一起运行.我使用的是vstest.console.exe,而不是mstest.exe,主要是因为它可以从多个框架运行测试的能力,但是现在焦点是一些Xunit DLL.这些工作是作为詹金斯管道的一部分运行的. 我已经在几个开发框上成功测试了所有内容,但是到目前为止,令人讨厌的测试发现还没有在任何CI构建框上使用.这是在添加0.99.8 Xunit测试适配器VSIX(也以0.99.7测试)之后. Xunit DLL正在使用4.5构建,并使用2.0.0.2378 beta nuget版本的Xunit. 我已经用最简单的DLL复制了症状,并采用单个公共测试方法,在我自己的盒子上工作正常,无法在任何构建盒上工作.部署环境非常简单,在Windows 2012上安装了VS2012安装和Xunit测试适配器. . 我已经通过vstest exe配置文件启用了tptrace记录,一切看起来都很好.我想我正在寻找一种进一步解决问题的方法(也许是为Xu
24 2024-04-14
编程技术问答社区
VSTest-Task不能从Test-plan运行.NET Core 2.1 xUnit-Tests
我正在尝试在VST中创建一个发行管道,该管道按照Test Plan中指定的Xunit测试来创建释放管道. . 长话短说:我无法正常工作. 我正在使用的内容: azure devops(以前为vsts) Visual Studio测试任务(V2.*) 测试项目目标.NET Core 2.1 xunit 2.4 with xunit.runner.visualstudio 2.4 在Azure devops中,我定义了一个Test Plan,其中包含Test Suite,其中包含一个Test,其中Associated Automation指向我的Xunit测试. 如所述 我可以在Visus Designer中为Vstest任务选择Test 当我运行发行管道时,vstest任务失败了以下错误消息: DiscoveryMessage : System.IO.FileNotFoundException: Unable to find tests for D
尽管测试成功,但VSTS测试任务还是失败了
即使在VsTest任务下通过了所有测试后,我都会出现错误. 2019-04-04T10:22:14.3913769Z Unable to find d:\a\r1\a\xxx\e2e\bin\Release\netcoreapp2.1\testhost.dll. Please publish your test project and retry. 2019-04-04T10:22:15.1564640Z Results File: d:\a\r1\a\TestResults\VssAdministrator_fv-az153_2019-04-04_10_22_13.trx 2019-04-04T10:22:15.1606430Z 2019-04-04T10:22:15.1607111Z Test Run Aborted. 2019-04-04T10:22:15.1607372Z Total tests: Unknown. Passed: 6. Failed: 0. Skippe
26 2024-03-25
编程技术问答社区
如何在管道中使用VSTest指定一组测试
使用我想构建和运行Web服务测试的Azure管道. 使用 Classic 管道构建器(因此不是YAML),我希望能够选择一组特定的测试以进行运行.我的测试分为各种课程.每个课程都有许多测试. 如果我将过滤器字段留为空,我将在所有类中运行所有测试. 但是我想指定一类测试.我该怎么做? 我尝试了以下测试,但找不到测试 className = webservices.socialtests className = socialtests tests = socialtests 或 tests = WebServices.SocialTests 使用詹金斯,我可以从命令行运行这些测试.我要做的就是指定以下内容: dotnet vstest mytests.dll/tests:socialtests 所以问题是为什么我不能在管道中进行操作? 解决方案 作为解决方法,您可以将testCategory添加到测试方法中,例如:--fil
8 2024-03-25
编程技术问答社区
在vsts构建过程中设置 "Path "环境变量,这样它就会在不同的构建任务中持续存在,特别是vsTest任务。
我有一个VSTS构建定义,我尝试使用PowerShell(以及在尝试CMD)任务来设置路径环境变量,以便在以后的vstest任务中,测试可以从该路径中运行一个EXE,但是设置设置使用PS \ CMD任务的路径似乎不起作用,我尝试了一些选项,例如: [Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + $newPath, [EnvironmentVariableTarget]::User) setx path " %newPath;%PATH%" 有什么建议? 解决方案 通过调用来设置过程环境变量.记录命令通过PowerShell任务: 例如: Write-Host "##vso[task.setvariable variable=PATH;]${env:PATH};$newPath"; 其他解决方案 如果您需要在Linux管道中执行此操作,则可以执行以下操作: - scr
16 2024-03-25
编程技术问答社区
Azure Devops VS测试任务中的代码覆盖率问题。.覆盖率未创建
我试图在包含" VS测试任务"的Azure DevOps中创建构建管道.这里没有什么想.我想获得代码覆盖范围,以将其发送给Sonaqube.但是,管道完成任务后,没有创建.Coverage文件. 可能存在一些错误,但我不确定. 有一个很大的"数据收集:找不到数据收集器'代码覆盖范围",这可能与我的UnitTestProject.dll构建的框架4.6.2和平台Anycpu有关(对于此问题,我试图强制:其他Consoleoptions:/framework:NetFramework,版本= V4.6.2'). 我的代理在Windows Server 2012和Visual Studio Enterprise上运行,一切都是最新的: [命令]" c:\ program文件(x86)\ microsoft VisualStudio \ 2017 \ enterprise \ common7 \ common7 \ id \ commonextensions \ microsoft
26 2024-03-25
编程技术问答社区
尝试运行UWP单元测试作为构建管道的一部分或使用vstest时,"无法激活应用程序"
我们有一个UWP应用程序,其单元测试可以从Visual Studio中运行良好.但是,在尝试在构建代理上运行测试时,我们正在遇到问题.为了将问题与构建管道隔离,我们尝试使用本地构建计算机上的命令行使用vstest.console.exe进行测试.下面的错误是相同的,无论我们是从构建管道还是从命令行中运行.我们将感谢任何指导. testwindow> vstest.console.exe/platform:x86/framework:frameworkuap10 /inisolation/logger:trx; logfilename = %Temp% \ sampleuwpapptest.trx c:\ vsts-agent_work \ 22 \ a \ appxpackages \ simpleuwpapp.tests_1.0.0.0.0.x86_test \ simpleuwpapp.tests_1.0.0.0.0.0.0.x86.appx Microsoft(R)测试执行命
16 2024-03-25
编程技术问答社区
在Python项目中缺少 "代码覆盖率 "标签
我有一个python项目,该项目托管在 github "> github 我使用 github href =" https://dev.azure.com/cmd-call-graph/cmd-call-graph" rel =" nofollow noreferrer"> azure pipelines /Github.com/microsoft/cmd-call-graph/blob/master/azure-pipelines.yml" rel =" nofollow noreferrer">链接到配置). 我正在使用pytest进行单元测试并获得覆盖范围结果,并在管道中上传.我在管道执行摘要中获得了总体代码覆盖率百分比(示例),但我看不到包含涵盖哪些行的详细信息的"代码覆盖"选项卡.构建工件包含HTML代码覆盖报告,其中包含此信息,但是在管道运行页面本身中看到它会更好. 这是pytest的调用: pytest tests --doctest-modules --
20 2024-03-25
编程技术问答社区
在VSTS中对.NET Core 1.1进行Dotnet测试。没有注册测试发现者
我正在使用.NET标准类库中的新CSPROJ使用VS 2017,并尝试使用.NET Core 1.1测试项目使用MSTest测试框架使用dotnet test命令来测试库.本地跑步非常好;当我将构建发送到连续集成时,我会收到错误: No test discoverer is registered to perform discovery of test cases. 如何在VST中注册此发现者并进行测试? 解决方案 这是我在VSTS上的构建过程( 添加dotnet restore任务. 然后A dotnet build任务. 与参数添加dotnet test任务--no-build --logger "trx;LogFileName=tests-log.trx 添加一个带有以下设置的任务 Test Result Format = vstest Test Result Files = **/tests-log.trx Merge Test Results
30 2024-03-25
编程技术问答社区
从.Net 4.6.1单元测试中引用.Net标准项目时出现方法缺失异常
我在运行使用System.IO.Compression.ZipFile.Open的.NET 4.6.1单元测试时获得以下例外 System.MissingMethodException: Method not found: 'System.IO.Compression.ZipArchive System.IO.Compression.ZipFile.Open(System.String, System.IO.Compression.ZipArchiveMode)'. at UnitTestProject.UnitTest1.TestMethod1() 使用VS 2017单元测试项目(不是.NET Core One)创建了单元测试项目,并将参考添加到System.IO.Compression.FileSystem和我的标准类库中: using System.IO.Compression; using Microsoft.VisualStudio.TestTools.Un
16 2024-01-08
编程技术问答社区
如何仅使用dotnet vstest进行以前失败的测试
我有一个超过10,000次测试的测试套件,有时只想重新运行测试,而在先前运行中失败了,使用dotnet vstest cli. 解决方案 我最终使用以下PowerShell命令,仅根据.\TestResults\中的最新trx文件再次运行先前失败的测试: dotnet vstest '.\bin\Debug\netcoreapp3.0\MyTests.dll' /Logger:trx /Tests:"$((Select-Xml -Path (gci '.\TestResults\' | sort LastWriteTime | select -last 1).FullName -XPath "//ns:UnitTestResult[@outcome='Failed']/@testName" -Namespace @{"ns"="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"}).Node.Value | %
14 2024-01-08
编程技术问答社区
vstest.console.exe和dotnet test命令之间的区别
vstest.console.exe和dotnet test命令之间是否有任何区别,可以从终端运行单元测试?就像何时应该使用另一个. " vstest.console.exe"是仅适用于Dotnet核心项目的.NET框架和" dotnet test"?我找不到在Google或Microsoft文档中找到此问题的任何特定答案. 以下链接中的问题接近,但答案不能解决差异.我想在带有脚本的构建服务器中运行我的C#项目,并且想知道哪个是最佳选择. .net Framework中的测试 解决方案 我相信 vstest.console.exe 在某个时候仅用于运行 mstests ,而 dotnet test 被设计为更多的测试框架不可知论并支持其他框架,例如 nunit 和 xunit ,有可能在不同平台上运行它们(即,不仅像 vstest.console一样. exe ). 根据 dotnet vstest vstest vstest vstest vstest vst
46 2024-01-05
编程技术问答社区
运行`dotnet test`显示`dotnet vstest`输出式''的输出
编辑:以下是最初发布标题 的前一个问题 xunit在控制台中运行时显示itestoutputhelper 调查后(请参阅评论),这个问题仍然非常相关,需要答案,但似乎应该将其解决到vstest框架及其周围的sinks而不是xunit. 现在的特定问题是:当将某些内容写入dotnet vstest输出接收器时,从命令行运行dotnet test时如何显示它.具体来说,我希望能够设置一个带有dotnet watch的观察者来连续运行测试,而我更关心输出(我将其少用作测试系统,而用作开发笔记本).而且我不想仅限于Visual Studio或Vscode. 原始问题: 在我的测试课中,我有 [Fact] public void Test() { output.WriteLine("WHATEVER"); } readonly ITestOutputHelper output; public Groc
14 2024-01-04
编程技术问答社区
xUnit测试在本地运行,但不在Azure DevOps上运行
我有Xunit测试,可以在本地运行良好,但不会在Azure DevOps上运行.测试的组件和测试组件是.NET 5.0组件. 从vstest任务检查日志文件,我看到以下 测试运行检测到了为不同框架和平台版本构建的DLL.以下DLL(s)不匹配当前设置,该设置为.netFramework,版本= V5.0框架和X86平台. unittests.dll是为框架的.netCoreApp构建的,版本= v5.0和平台anycpu. microsoft.testplatform.communicationutilities.dll是为框架构建的.netstandard,version = v2.0和平台anycpu. microsoft.testplatform.coreutility.dll是为框架构建的.netstandard,version = v2.0和平台anycpu. microsoft.testplatform.crossplatengine.dl
14 2023-12-24
编程技术问答社区
如何在Visual Studio 2017中运行Nunit测试?
我刚刚安装了Visual Studio2017.我有一个用于测试用例的项目. ctrl + r - t 不再运行测试,并且测试资源管理器不再找到标有TestCase属性的任何测试用例. 有没有一种方法可以让Nunit运行,或者我可以找到更新? 我将Nunit从Nuget Package Manager重新安装到最新版本,没有改进. 解决方案 将Nunit测试适配器Nuget软件包添加到您的测试项目 2.*( 3.*( >) 或安装测试适配器Visual Studio扩展名.有一个用于 2.*( nunitdevelopers.nunittestadapter ) 3.*( nunitdevelopers.nunit3testadapter ). 我更喜欢Nuget软件包,因为它将与您的项目使用的Nunit版本同步,因此将自动匹配任何构建服务器中使用的版本. 其他解决方案 您需要安装NunittestAdapter. Nunit的最新版本是
24 2023-11-24
编程技术问答社区