标签: test-explorer

如何配置XUnit以在Visual Studio 2015测试资源管理器中仅显示方法名称?

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)

xunit.net test-explorer visual-studio-2015

41
推荐指数
2
解决办法
7965
查看次数

Visual Studio Test Explorer窗口无法打开

出于某种原因,我无法在Visual Studio 2012中打开测试资源管理器窗口.我单击测试 - > Windows->测试资源管理器,没有任何反应......

此问题可能是由于最近卸载DotCover引起的.我之所以这样做,是因为我的许可证已过期,而且在没有它的情况下运行测试时出现问题(上下文菜单无效).

任何建议或建议非常感谢!

谢谢.

unit-testing dotcover visual-studio-2012 test-explorer visual-studio-2015

38
推荐指数
3
解决办法
4万
查看次数

VS2012:重新运行先前失败的测试时,在测试资源管理器中清除测试结果

在VS2012中运行单个测试时,测试资源管理器底部会显示一个窗口,其中包含(假设失败)旁边有"Test Failed"的红色图标.接下来是"经过时间"的失败消息.

我想知道是否有办法清除这个窗口.例如,如果我右键单击我的测试并选择"Debug Selected Tests",那么当我逐步完成测试时,这个测试结果窗口仍会显示过去测试运行的失败,这有点令人困惑.

unit-testing visual-studio-2012 test-explorer

28
推荐指数
3
解决办法
4903
查看次数

VS2012测试资源管理器锁定本机.dll,使重建失败

我使用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上的锁?

c# c++-cli visual-studio visual-studio-2012 test-explorer

24
推荐指数
2
解决办法
2893
查看次数

如何在Visual Studio 2012单元测试中获取控制台输出

我在VS 2012中有一个托管C++单元测试.测试运行正常,我可以验证是否cout执行了多个调用的循环.

但是,当我查看测试资源管理器时,测试标记为已通过,但输出没有超链接,因为我习惯于c#项目.

我测试结束时的代码是

for (int i = 0; i < 4; i++)
{
    cout << parameters[i];
    cout << endl;
}
Run Code Online (Sandbox Code Playgroud)

当我在调试器中逐步执行它时,我可以验证它.我也试过 cerr但没有区别.

c++ unit-testing cout visual-studio-2012 test-explorer

23
推荐指数
3
解决办法
2万
查看次数

Visual Studio 测试资源管理器在更改后不运行测试

我正在使用 Visual Studio 2022 社区版。每当我删除或重命名现有测试方法(包括复制、粘贴,然后重命名)时,Visual Studio 在进行更改后都无法运行测试。

  • 我可以右键单击以前运行的测试并运行它们,但任何重命名的测试我都不能。同样,自上次成功运行以来创建的任何新测试,直到我重命名现有测试方法。
  • 只要没有重命名其他测试,我就可以从头开始创建新的测试,不会出现任何问题。
  • 当我重新启动 Visual Studio 时,所有测试都会被识别并在重新启动后正常运行。但在编写测试时必须不断重新启动 Visual Studio,这非常令人沮丧。我复制/粘贴一个测试方法并将其重命名很多次,这导致每次都会发生此问题。
  • 我尝试删除并重新安装 Micosoft.NET.Test.Sdk、MSTest.Adapter 和 MSTest.TestFramework。我已删除该存储库,并重新克隆该存储库,基本上删除了隐藏的 .vs 文件夹。
  • 这种情况发生在两台不同的计算机上,多个解决方案,都引用相同的存储库。
  • 我已经创建了一个新的 .NET 6 测试项目,并将前一个项目中的所有测试复制并粘贴到新项目中。当我在执行下面列出的操作后尝试运行测试时,确实遇到了一些错误。
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)

.net unit-testing mstest test-explorer visual-studio-2022

21
推荐指数
1
解决办法
6145
查看次数

VS 2017没有发现.NET Core上的测试

谁能帮助我让VS2017与.NET Core测试项目一起工作?

我尝试从VS 2017模板为.NET Core创建MSTest和xUnit单元测试项目.它们都不适用于测试资源管理器(未发现),但从dotnet test项目文件夹运行可以正常工作.

重现步骤:

  1. 在VS 2017中创建新项目
  2. 选择Unit Test Project (.NET Core)xUnit Test Project (.NET Core)模板
  3. 实施一些任意的单元测试
  4. 构建解决方案
  5. 转到文本资源管理器并尝试 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单元测试项目,那么它可以工作.

有任何想法吗?

unit-testing test-explorer .net-core visual-studio-2017

19
推荐指数
3
解决办法
8800
查看次数

当按项目分组时,测试资源管理器中的"外部"类别下将显示测试

每当我尝试从Visual Studio 2012在Test Explorer上运行测试时,即使Group By被设置为"Group By Project",一些测试也被归类为"External" 在此输入图像描述

然后无法识别源代码

unit-testing visual-studio-2012 test-explorer

17
推荐指数
1
解决办法
2604
查看次数

什么是Visual Studio构建的C#解决方案生成的$ RANDOM_SEED $文件?

我们注意到,在某个开发机器上,一个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

14
推荐指数
2
解决办法
1961
查看次数

我无法重新生成文件背后的 specflow 代码

当我编辑specflow功能文件测试时,它不会更新代码隐藏文件。当我尝试通过右键单击项目并选择手动重新生成代码隐藏文件时,'Regenerate Feature Files'出现错误:

错误:在此系统上找不到自定义工具“specflowsinglefilegenerator”

我发现这通常意味着我没有安装Specflow扩展。但是,当我在 Visual Studio 中查看扩展和更新时,我可以看到'Specflow for Visual Studio 2017'已安装。

如果有人知道我能做什么,那将非常有帮助。当我将存储库重新克隆到一个新文件夹时,这开始了。

我也尝试过清理和重建。关闭视觉工作室。卸载并重新安装 Specflow 扩展。从 2019 年到 2017 年从 Visual Studio 切换。重新启动我的计算机。更新规范流。删除 specflow 缓存文件并强制文件重新生成。我仍然没有对代码隐藏文件进行更改。

visual-studio specflow test-explorer feature-file

14
推荐指数
1
解决办法
1万
查看次数