问题标签 [visual-studio-test-runner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1929 浏览

c# - 如何以编程方式暂停单元测试?

我正在使用 visual-studio 内置的单元测试框架 -Microsoft.VisualStudio.TestTools.UnitTesting命名空间。

我需要从测试代码暂停单元测试的执行(并且,最好允许开发人员通过按下某个按钮或其他东西来恢复测试)。

有没有内置的方法可以做到这一点?

我知道我可以使用 aThread.Sleep()来简单地暂停几秒钟,但是有没有办法暂停/恢复或以某种方式提示用户?可能另一个明显的解决方案是调用MessageBox.Show(),但这需要引用整个 Windows.Forms 家族......

PS这背后的原因:我有一个“模糊”的集成测试,有时会失败,但我不知道为什么(这是一个通过自动化浏览器的UI测试,浏览Selenium器屏幕快速闪烁,我不知道是什么发生在那里......)。并且由于某种原因,我在调试测试时无法捕捉到这个失败,只有在定期运行它时......

更新:我想没有内置的方法可以做到这一点,这实际上是有道理的,因为测试应该在没有任何用户交互的情况下运行。猜猜,一个简单Sleep()甚至Console.ReadLine()简单的冻结执行,直到开发人员在测试资源管理器中单击“取消”。

0 投票
1 回答
982 浏览

azure-devops - XUnit 测试在 VS2017 中运行很快,但在 VSTS 构建代理上运行很慢

我最近将大约 2000 个纯单元测试从 MSTest 迁移到 XUnit。这些测试包含在大约 10 个测试项目中,并配置为通过测试收集和组装并行运行。我已经安装了 Visual Studio 测试运行程序 nuget 包,当在 Visual Studio 2017 中本地运行时,测试需要大约 25 秒才能完成。但是,在 VSTS 构建代理上运行测试需要大约 30 分钟 (!)。我尝试调整 xunit 中的所有各种标志以尝试加快构建代理上的测试,但我设法实现的最佳运行时间约为 20 分钟。有没有其他人在 xunit 测试运行时之间经历过如此巨大的差异?

0 投票
1 回答
544 浏览

unit-testing - 包含 Visual Studio 测试运行程序的程序集的目录无效

我们的 CI 环境设置使用 [TFS Server 2015 + Visual Studio 构建工具 2017]。当我尝试在环境中运行基于 C# 的单元测试时,它会显示此错误 TF900547: The directory containing the assemblies for the Visual Studio Test Runner is not valid ''.

然后我尝试通过休闲方式修复错误

  1. 在机器上安装了 VS 测试代理 2015 https://docs.microsoft.com/en-us/visualstudio/test/lab-management/install-configure-test-agents
  2. 从我的计算机复制C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow到 CI 机器的确切位置。
    1. 将测试运行器从更改Visual Studio Test RunnerMS Test Runner

但仍然是同样的错误。看起来 tfs 服务器找不到测试代理文件夹。任何人都知道如何解决这个问题

0 投票
0 回答
598 浏览

unit-testing - VS 2017中的单元测试.Net Framework 3.5项目

我有一些带有测试库的遗留项目。项目(和单元测试)面向 .NET 3.5。我们正在使用 VS 2017 企业版。

我能够找到一些允许测试正确构建的 nuGet 包,但测试资源管理器根本看不到测试。我认为这是因为没有测试适配器。

我正在使用的软件包是:

  • Microsoft.UnitTestFramework.Extensions v1.0.0.3
  • Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated v15.0.26228

由于缺乏 .Net 3.5 支持,我发现的大多数软件包都无法安装。这在 2017 年是有道理的,但仍然如此。

有谁知道我可以使用什么测试适配器使旧版 .Net 3.5 单元测试对 VS 2017 测试资源管理器可见?

我不能做的事情:

  • 使用不同版本的 VS
  • 将库重新定位到不同的框架版本(它们适用于 SharePoint 2010)
  • 为不同的测试框架重写所有测试(除非有一个非常直接的属性/断言翻译我可以用查找和替换来做,因为有很多测试)

感谢任何提示!

0 投票
1 回答
59 浏览

asp.net - 在 Visual Studio Web 负载测试中提取嵌套字段

这是我想测试加载和提取数据的 html 代码

我需要333价值。为此,我需要从中提取值66Secret然后使用该值推断字段的名称(此处Field[66].value)。我怎样才能做到这一点?

我尝试使用两个Extract Attribute Value提取规则,但因为有相同的响应,第一个值还没有在上下文中。

0 投票
3 回答
2252 浏览

azure-devops - VSTS“Visual Studio 测试”任务在发布后删除 TRX 文件

我继承了一个顶起的 VSTS 构建过程,我正在尝试将 SonarQube 集成到组合中。顶,因为它不是一个干净的安装,我知道以前的所有者用它做了一些奇怪而神秘的事情,我还无法追查到。

无论如何,我遇到的问题是“Visual Studio 测试”任务步骤在发布结果后删除了 .trx 文件。我需要 SonarQube 的 .trx 文件。我可以看到 trx 文件正在被删除,并且在文件夹的屏幕录制和 VSTS 构建过程的活动控制台日志记录之后,可以确定 .trx 文件消失的发布过程。使用 system.debug = true 这里是日志的一个子集(.trx 文件在这里消失了):

我已经尝试了很多事情,其中​​最新的是将最新的 VS 2017 Enterprise IDE 安装到构建机器并在任务中使用这些设置: 在此处输入图像描述

在此处输入图像描述

不确定这是否有帮助,但这是上述 vstest 调用的近似值,如控制台所示:

-#############################

如果我从命令行运行 vstest.console.exe,则不会发布结果并且不会删除 .trx 文件。

-#############################

我希望 Visual Studio 测试任务步骤发布但不删除 .trx 文件。

任何帮助,将不胜感激。谢谢!

-###################

更新 1:最终“已完成测试执行”部分的附加日志记录:

0 投票
1 回答
160 浏览

azure-devops - VSTS 测试失败但 vstest.console 通过;出于某种原因,断言在代码之前执行?

好吧,我们拥有的系统有很多依赖项,但我会尝试总结发生的事情而不透露太多细节。

.dll 形式的测试程序集是正在执行的程序集。很多这些测试调用 API。

在有问题的方法中,有 2 个 API 调用需要等待:一个用于将记录写入该外部接口,另一个用于提取所有记录,然后读取该外部接口中的最后一个,均通过 API。该测试只是检查在端到端上下文中写入最后一条记录是否成功,这就是为什么既有写入又有读取的原因。

如果我们在 Visual Studio 中执行测试,一切都会按预期进行。我还通过命令行 vstest.console.exe 手动对其进行了测试,并且总是会出现预期的结果。

但是,当涉及到 VSTS 中的 VS 测试任务时,由于某种原因它失败了。我们一直在试图弄清楚,最终我们达到了从“读取”部分打印列表的地步。原来我们插入的最后一条记录不在我们拉取的数据中,但是如果我们通过不同的方法检查外部接口,我们确认写入过程确实发生了。是什么赋予了?为什么 VSTest 变得像一组过时的记录?

我们还注意到两件事:

1.) 对于通过的测试,没有任何 Console.WriteLine 输出出现在日志中。只有在失败的测试中,他们才会这样做。

2.) 即使我们的 Data.Should.Be 调用在 TestMethod 的最后,日志会在打印出这些行之前报告失败!即便如此,打印应该读取记录列表之后发生,但是当打印发生时,我们仍然缺少我们刚刚编写的记录。

有没有像我们在这里缺少的自下而上的东西?在我看来,VSTS vstest 确实在实际代码之前执行了断言。虽然 TestMethods 的顺序发生了正确的顺序(代码中从上到下编写的第 4 个测试是第 4 个而不是第 4 个到最后执行),我们需要它们以正确的顺序发生,因为后面的一些测试依赖于以前的测试成功。

我们在这里缺少什么吗?我会放一个源代码,但如果是这样的话,我需要先清理很多东西。

0 投票
1 回答
175 浏览

f# - 通过 Visual Studio 测试适配器运行测试时如何设置 Expecto 配置属性

我正在使用 Expecto.VisualStudio.TestAdapter 与 Visual Studio 2017 集成。如何为 Expecto 设置配置选项,以便 Visual Studio 测试运行程序能够选择它们?

我特别需要为给定的测试程序集设置 parallel = false。

0 投票
2 回答
628 浏览

unit-testing - 在 Visual Studio 2017 中运行测试时出错:管道的另一端没有进程

有时,当我运行测试(使用 XUnit 的 .Net Standard 2.0 项目)时,我在测试输出窗格中收到错误消息:

[25.09.2018 1:46:36 错误] System.IO.IOException:管道的另一端没有进程。"

然后我无法再运行测试,直到我重新启动 Visual Studio。这是错误的完整堆栈跟踪:

我能做些什么来摆脱这种烦人的行为吗?

0 投票
1 回答
541 浏览

azure-devops - Visual Studio 测试任务的代码覆盖率

我有一个包含天蓝色函数实现的项目。我的项目 .csproj 文件如下所示。 在此处输入图像描述

我已经添加了一个相同的测试项目,并使用 Xunit 实现了单元测试。我的测试项目 .csproj 如下所示。

在此处输入图像描述

我在构建定义中添加了一个 Visual Studio 测试任务,配置如下。

在此处输入图像描述

如何仅包含项目和测试项目来计算代码覆盖率?