xunit.runner.visualstudio在Visual Studio 2015中使用2.0.1版时,测试的名称显示为完全限定.有没有办法让测试只显示方法名称?
考虑以下测试: -
namespace MySolution.Tests
{
public class MyTestClass
{
[Fact]
public void ClassUnderTest_WhenDefaultConstructorUsed_SomePropertyIsNotNull()
{
*... test code in here*
}
}
}
Run Code Online (Sandbox Code Playgroud)
在测试资源管理器中显示为: -
MySolution.Tests.MyTestClass.ClassUnderTest_WhenDefaultConstructorUsed_SomePropertyIsNotNull
Run Code Online (Sandbox Code Playgroud)
使用MSTest/VSTest,这将显示为: -
ClassUnderTest_WhenDefaultConstructorUsed_SomePropertyIsNotNull
Run Code Online (Sandbox Code Playgroud) 出于某种原因,我无法在Visual Studio 2012中打开测试资源管理器窗口.我单击测试 - > Windows->测试资源管理器,没有任何反应......
此问题可能是由于最近卸载DotCover引起的.我之所以这样做,是因为我的许可证已过期,而且在没有它的情况下运行测试时出现问题(上下文菜单无效).
任何建议或建议非常感谢!
谢谢.
unit-testing dotcover visual-studio-2012 test-explorer visual-studio-2015
在VS2012中运行单个测试时,测试资源管理器底部会显示一个窗口,其中包含(假设失败)旁边有"Test Failed"的红色图标.接下来是"经过时间"的失败消息.
我想知道是否有办法清除这个窗口.例如,如果我右键单击我的测试并选择"Debug Selected Tests",那么当我逐步完成测试时,这个测试结果窗口仍会显示过去测试运行的失败,这有点令人困惑.
我使用Visual Studio 2012作为C#和C++/CLI .dll的解决方案,C++/CLI dll引用本机.dll,例如boost.C++代码编译为x64.
当我打开VS时,我可以清理并构建我的项目.
使用测试资源管理器,我可以运行我的测试.
一旦我使用测试资源管理器运行测试一次,我就无法重建项目.似乎VS2012 Test Explorer对我的C++/CLI-dll保持锁定,并且在那里我收到以下错误:
LNK1104: cannot open file 'C:\Dev\LockExample\bin\Debug\cli.dll'
Run Code Online (Sandbox Code Playgroud)
因此,每当我使用Test Explorer运行测试时,我需要重新启动VS2012才能继续开发.显然,这不是一个可持续发展的过程.
测试和重建工作没有问题C#-only dll - 只要我能告诉问题只发生在使用本机x64代码的DLL上.
经过一些测试,我发现这里的反派是vstest.executionengine.exe.使用句柄(来自SysInternals),我看到vstest.executionengine.exe保存了.dll和cli-dll的.pdb的锁.对于托管专用dll,它没有任何锁定.
在测试运行完成后,如何让Visual Studio Test Explorer释放C++/Cli dll上的锁?
我在VS 2012中有一个托管C++单元测试.测试运行正常,我可以验证是否cout执行了多个调用的循环.
但是,当我查看测试资源管理器时,测试标记为已通过,但输出没有超链接,因为我习惯于c#项目.
我测试结束时的代码是
for (int i = 0; i < 4; i++)
{
cout << parameters[i];
cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
当我在调试器中逐步执行它时,我可以验证它.我也试过
cerr但没有区别.
我正在使用 Visual Studio 2022 社区版。每当我删除或重命名现有测试方法(包括复制、粘贴,然后重命名)时,Visual Studio 在进行更改后都无法运行测试。
System.InvalidOperationException: TestsForOrigin: Unknown TestCaseRecord.Origin value Unknown
at Microsoft.VisualStudio.TestStorage.MergedTestGroup.TestsForOrigin(TestCaseOrigin origin)
at Microsoft.VisualStudio.TestStorage.MergedTestGroup.MarkAsStale()
at Microsoft.VisualStudio.TestStorage.MergedTestIndex.MarkAsStale(TestCaseOriginKind originKind)
at Microsoft.VisualStudio.TestStorage.TestStoreIndexSet.MarkTestsAsStale(TestCaseOriginKind originKind)
at Microsoft.VisualStudio.TestStorage.TestStore.MarkTestsAsStale(TestCaseOriginKind originKind)
at Microsoft.VisualStudio.TestWindow.Host.TestRunSession.StartTestRun(IEnumerable`1 containers, IEnumerable`1 requestedTestCasesToRun, Boolean isHotReloadRun)
at Microsoft.VisualStudio.TestWindow.Host.VsTestRunSession.StartTestRun(IEnumerable`1 containers, IEnumerable`1 requestedTestCasesToRun, Boolean isHotReloadedRun, Int32 totalIterations)
at Microsoft.VisualStudio.TestWindow.Host.VsTestRunSession.StartTestRun(ICollection`1 requests, Int32 totalIterations)
at Microsoft.VisualStudio.TestWindow.Logging.ILoggerExtensions.CallInternalWithLogging(IInternalLogger log, Action action, Boolean shouldThrow)
System.Collections.Generic.KeyNotFoundException: The given key 'C:\Users\My Name …Run Code Online (Sandbox Code Playgroud) 谁能帮助我让VS2017与.NET Core测试项目一起工作?
我尝试从VS 2017模板为.NET Core创建MSTest和xUnit单元测试项目.它们都不适用于测试资源管理器(未发现),但从dotnet test项目文件夹运行可以正常工作.
重现步骤:
Unit Test Project (.NET Core)或xUnit Test Project (.NET Core)模板Run All 此时,"输出"窗口应该告诉您已发现0测试
.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
如果我尝试从面向.NET Framework的模板(完整版,而不是.NET Core)创建MSTest单元测试项目,那么它可以工作.
有任何想法吗?
每当我尝试从Visual Studio 2012在Test Explorer上运行测试时,即使Group By被设置为"Group By Project",一些测试也被归类为"External" 
然后无法识别源代码
我们注意到,在某个开发机器上,一个C#解决方案的Visual Studio(2015更新3)调试版本在每个构建的DLL旁边生成一个$ RANDOM_SEED $文件.
文件的内容只是一个数字,例如
1443972318
删除文件然后重建导致文件重新生成,具有不同的编号.
在解决方案中重建单个项目时也会出现这种情况(一个项目只有标准的C#项目引用/依赖项+ System.Management).
需要注意的是运行命令行构建如
msbuild <sln-file>
没有不重新生成文件(完整的解决方案或单个项目的版本).
重新启动VS后,不再重新生成该文件.
据我们所知,我们的任何源代码,后期构建步骤或内部依赖项都不使用此文件名..NET框架类有很多依赖项,包括Random和RNGCryptoServiceProvider,以及外部依赖项.我们没有所有这些的完整源代码,因此无法详尽检查哪些依赖项负责.
在黑暗中这是一个镜头,但问题是有没有人看到类似的东西?
编辑 我并不感到惊讶,这已经被投票了 - 我很欣赏它是非常开放的,但我现在无法重现这一点,因为它可能会产生潜在的严重后果(随机数发生器攻击?)我还是发布了它.如果我能够复制,我当然会在这里更新.
nunit visual-studio test-explorer random-seed nunittestadapter
当我编辑specflow功能文件测试时,它不会更新代码隐藏文件。当我尝试通过右键单击项目并选择手动重新生成代码隐藏文件时,'Regenerate Feature Files'出现错误:
错误:在此系统上找不到自定义工具“specflowsinglefilegenerator”
我发现这通常意味着我没有安装Specflow扩展。但是,当我在 Visual Studio 中查看扩展和更新时,我可以看到'Specflow for Visual Studio 2017'已安装。
如果有人知道我能做什么,那将非常有帮助。当我将存储库重新克隆到一个新文件夹时,这开始了。
我也尝试过清理和重建。关闭视觉工作室。卸载并重新安装 Specflow 扩展。从 2019 年到 2017 年从 Visual Studio 切换。重新启动我的计算机。更新规范流。删除 specflow 缓存文件并强制文件重新生成。我仍然没有对代码隐藏文件进行更改。
test-explorer ×10
unit-testing ×6
.net ×1
.net-core ×1
c# ×1
c++ ×1
c++-cli ×1
cout ×1
dotcover ×1
feature-file ×1
mstest ×1
nunit ×1
random-seed ×1
specflow ×1
xunit.net ×1