Visual Studio 2019 需要几分钟时间才能开始运行单元测试。这是一个大型(>300 个项目).NET Framework x86 解决方案。
感觉就像VS在等待什么,但是断开网络适配器并不会让测试变得更快。
在空项目中运行测试从单击“测试资源管理器”播放按钮到完成大约需要 6 秒。
这是详细的测试日志
[5/10/2021 9:22:45.934 PM] Interrupt: Enqueueing RunSelectedOperation
[5/10/2021 9:22:45.934 PM] Enqueue operation 'RunSelectedOperation', hashcode:11243619
[5/10/2021 9:22:45.935 PM] Operation left in the the queue: 1
[5/10/2021 9:22:45.935 PM] 'RunSelectedOperation', hashcode:11243619
[5/10/2021 9:22:45.935 PM]
[5/10/2021 9:22:45.935 PM] Operation Dequeue : 'RunSelectedOperation'
[5/10/2021 9:24:01.053 PM] test container discoverer executor://orderedtestadapter/v1, discovered 1 containers
[5/10/2021 9:24:01.053 PM] Containers from 'Microsoft.VisualStudio.MSTest.TestWindow.OrderedTestContainerDiscoverer' :
[5/10/2021 …Run Code Online (Sandbox Code Playgroud) 什么不起作用
在某些时候,过去显示在测试资源管理器中的测试列表现在不再出现。当我尝试刷新列表时,出现错误,表明系统在某处遇到空值。
我有以下设置:
VS代码
Version: 1.70.2 (user setup)
Commit: e4503b30fc78200f846c62cf8091b76ff5547662
Date: 2022-08-16T05:35:13.448Z
Electron: 18.3.5
Chromium: 100.0.4896.160
Node.js: 16.13.2
V8: 10.0.139.17-electron.0
OS: Windows_NT x64 10.0.19044
Run Code Online (Sandbox Code Playgroud)
小部件解决方案设置:
我有一个主项目和一个测试项目,组织如下:
Widgets.Server 项目文件:
这就是项目文件包含的部分内容 - 注意:平台
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0-windows</TargetFramework>
<PlatformTarget>AnyCPU</PlatformTarget>
<IsPackable>true</IsPackable>
Run Code Online (Sandbox Code Playgroud)
这是测试项目文件包含的内容 - 匹配平台:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0-windows</TargetFramework>
<PlatformTarget>AnyCPU</PlatformTarget>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageReference Include="TagLibSharp" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.1.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Moq" …Run Code Online (Sandbox Code Playgroud) 我真的不喜欢ReSharper(让我们不去讨论),但它的测试运行器比VS默认的Test Explorer更好.例如,VS不能很好地处理测试多态(甚至根本不处理),而ReSharper则可以.是否有可能以完全关闭的方式安装和配置ReSharper,除了它的测试运行器?
这是一种"高级"/简单的问题.我正在尝试获取VS2012中我的测试资源管理器中填充的所有测试的列表.我想将它与测试列表进行比较,我想知道是否有任何方法可以从测试资源管理器中获取所有名称,例如复制/粘贴,导出到csv或任何此类性质.
我一直在做一个项目,并注意到我的一个 Specflow 场景需要更新。
我更新了 Specflow Scenario,将其拆分为两个不同的场景(一个用于无效测试,另一个用于有效测试)。
在此之后,我重新生成了 feature.cs 文件,清理并重建了解决方案。
(我使用的是 Microsoft Visual Studio Enterprise 2019 版本 16.4.1)
这是“未知项目”出现在我的测试资源管理器中的时候,它包含一个测试......我已经更改了一个测试。它无法运行,但也无法删除。
这是我所看到的:
我能够摆脱这种情况的唯一方法,至少在短时间内,是删除我的整个解决方案,然后再次将其拉回,这不太理想。
这是我尝试解决此问题的列表;
有没有人以前见过这个,或者知道如何解决这个问题?
我在 .NET 测试资源管理器扩展中看不到我的测试。\n我已经配置了 settings.json
\n{\n "dotnet-test-explorer.testProjectPath": "**/*ComprasPrevidencia/ComprasPrevidencia.csproj",\n "dotnet-test-explorer.autoWatch": true,\n "dotnet-test-explorer.runInParallel": true \n}\nRun Code Online (Sandbox Code Playgroud)\n在终端,我成功搜索可用的测试:
\ndotnet test -t -v=q\nRun Code Online (Sandbox Code Playgroud)\n\n\nOs Testes a seguir est\xc3\xa3o dispon\xc3\xadveis:\nAcumulacao\nAcumulacaoRisco\nRisco
\n
我的.csproj:
\n<Project Sdk="Microsoft.NET.Sdk">\n <PropertyGroup>\n <TargetFramework>netcoreapp3.1</TargetFramework>\n <IsPackable>false</IsPackable>\n </PropertyGroup>\n <ItemGroup>\n <PackageReference Include="nunit" Version="3.12.0"/>\n <PackageReference Include="NUnit3TestAdapter" Version="3.15.1"/>\n <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0"/>\n <PackageReference Include="Selenium.WebDriver" Version="3.141.0"/>\n <PackageReference Include="Selenium.Support" Version="3.141.0"/>\n <PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="85.0.4183.8700"/>\n <PackageReference Include="ClosedXML_Excel" Version="1.0.0"/>\n <PackageReference Include="ClosedXML" Version="0.95.3"/>\n <PackageReference Include="SQL" Version="1.0.5075.31045"/>\n <PackageReference Include="System.Data.SqlClient" Version="4.5.1" />\n </ItemGroup>\n</Project>\nRun Code Online (Sandbox Code Playgroud)\n\n 似乎是一个非常微不足道的问题,但令我惊讶的是,我发现网上没有提到这一点。
我有一个 Nunit 测试项目(别人写的,我不想改变太多),我需要调试。这些测试取决于它们使用 读取的环境变量Environment.GetEnvironmentVariable。
我的问题是:在 Visual Studio 中调试测试时,有没有办法传递环境变量?
我知道我可以在通过Project Properties->Debug调试可执行项目时传递环境变量,但这在运行测试时不起作用(例如通过Test Explorer)。我也知道我可以通过.runsettings文件传递测试参数,但这些只能通过TestContext类访问。
nunit environment-variables visual-studio-debugging test-explorer visual-studio-2019
我有一个仍在使用VSMDI文件的解决方案.
运行测试仍然正常,但是当我尝试分析所选测试的代码覆盖率时,它显示"生成空结果".
从测试中查看输出日志,它显示"没有指定Id {09c3a333-1a28-27bf-2d79-8f6aa8fe5e3a}的测试."
从我看到的,提到的Id是VSMDI文件中的测试ID
有人为什么会这样?
我正在试图弄清楚如何让Canopy的测试结果显示在VS测试资源管理器中.我可以让我的测试出现,它会运行它们,但它总是显示通过.似乎Run()函数正在"吃掉"结果,所以VS永远不会看到失败.
我确信Canopy如何很好地解释它进入测试结果的异常之间存在冲突,因为通常你希望Run()无论结果如何都能成功并使用自己的报告报告其结果.
也许我应该重定向输出并在MS测试代码中解释它?
所以这就是我现在设置的方式......
Visual Studio Test Runner查看此文件以查看其所见的测试,这些调用称为执行实际测试的canopy方法.
open canopy
open runner
open System
open Microsoft.VisualStudio.TestTools.UnitTesting
[<TestClass>]
type testrun() =
// Look in the output directory for the web drivers
[<ClassInitialize>]
static member public setup(context : TestContext) =
// Look in the output directory for the web drivers
canopy.configuration.ieDir <- "."
canopy.configuration.chromeDir <- "."
// start an instance of the browser
start ie
()
[<TestMethod>]
member x.LocationNoteTest() =
let myTestModule = new myTestModule()
myTestModule.all()
run()
[<ClassCleanup>]
static member public cleanUpAfterTesting() …Run Code Online (Sandbox Code Playgroud) 我正在从 VS2019 升级到 VS2022。我们已经编写了大约 1000 多个测试用例,我们可以在 VS2017 和 VS2019 上执行这些测试用例,但是当我在 VS2022 中打开项目时,测试用例不会运行。花费时间不到一毫秒,状态栏显示“测试运行已完成 0 次测试,(0 次通过,0 次失败,0 次在 <1 毫秒内跳过运行”
单击该图标后,文本资源管理器广告上报告了 1 个错误图标,或者当我尝试“调试”单个测试时,我在输出窗口中收到以下错误
Building Test Projects
Starting test discovery for requested test run
========== Starting test discovery ==========
System.IO.FileNotFoundException: Could not load file or assembly 'System.Text.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Text.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
at Microsoft.Extensions.DependencyModel.DependencyContextJsonReader.Read(Stream stream)
at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Hosting.DotnetTestHostManager.GetTestHostPath(String runtimeConfigDevPath, String depsFilePath, String sourceDirectory) in /_/src/Microsoft.TestPlatform.TestHostProvider/Hosting/DotnetTestHostManager.cs:line 763
at …Run Code Online (Sandbox Code Playgroud) test-explorer ×10
.net ×3
unit-testing ×3
c# ×1
f# ×1
mstest ×1
nunit ×1
resharper ×1
testing ×1
xunit.net ×1