问题标签 [vs-unit-testing-framework]

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 回答
3113 浏览

c# - 自定义数据驱动 MSTest

我有从 Excel 创建的 XML 电子表格文件,我需要将其用作数据驱动测试的输入。DataSource由于使用 Oledb 提供程序解析文件的不一致,我无法在我的测试方法上使用该属性。我想知道是否有一种方法可以像DataSource属性那样嵌套测试结果?

我希望 MSTest 显示迭代的每一行的细分,而不是我捕获失败的断言异常并保留失败的集合。我当然希望测试针对每一行运行,而不是在第一个失败的断言时退出执行。

我不是在寻找坚持通过 DataSource 属性加载数据的答案。谢谢

0 投票
2 回答
3504 浏览

c# - 找出在 MS TestInitialize 中执行的下一个测试方法

我将特定测试方法的测试数据保存在与函数名称相同的文件夹中。我以前在每个 中都有相同的函数调用[TestMethod]ClearAllAndLoadTestMethodData()它通过 确定方法名称StackTrace。现在,我将此功能移至[TestInitialize]. 如何找到即将执行的方法的名称?

我想TestContext提供这个。我可以通过它访问它,[AssemblyInitialize()]并且在第一次运行时,它的属性Name设置为测试方法的名称。但是,稍后这不会改变(如果我将对象保存在静态字段中)。

0 投票
2 回答
4925 浏览

visual-studio - Visual Studio 单元测试 - 多个案例,如 Nunit

Nunit中,可以为多种情况重用一种测试方法。

如何在 Visual Studio 的测试框架中做到这一点?

0 投票
1 回答
162 浏览

c# - VS2012 运行测试方法后运行新的程序实例

我有一个静态配置类,它在程序启动时加载了值,并且任何进一步修改它的尝试都会引发异常。

不幸的是,VS2012 的单元测试套件保留了在整个测试过程中运行的程序的相同实例,并且在不同的测试中我想测试不同的配置。有没有办法强制运行者“重置”程序或在它的新实例中运行进一步的测试?我想以一种避免将解决方法代码添加到配置类的方式来执行此操作,以适应这种情况。

0 投票
3 回答
24071 浏览

c# - 标有 TestInitialize 和 TestCleanup 的类未执行

我一直在努力解决这个问题,希望它可以帮助别人。

在使用 MsTest 创建单元测试时,我发现我在每个测试中都重复了相同的代码,并发现了一些方便的属性(TestInitializeTestCleanupClassInitializeClassCleanup)。

假设,当您使用这些属性之一标记方法时,它应该自动执行(分别在每个测试之前、每个测试之后、所有测试之前和所有测试之后)。令人沮丧的是,这并没有发生,我的测试也失败了。TestMethod如果直接从带有属性标记的类中调用这些方法,则测试成功。很明显他们不是自己执行的。

这是我使用的一些示例代码:

那么为什么这没有执行呢?

0 投票
1 回答
581 浏览

database - Visual Studio Premium 2010 中的“创建单元测试”选项灰显

Unitll 几天前,一切正常,今天数据库模式视图中的“创建单元测试”选项显示为灰色。我已经检查了所有的参考资料,并且已经正确到位。请问有什么建议吗?

0 投票
4 回答
6228 浏览

c# - 测试资源管理器未显示带有网络驱动器的单元测试列表

我有一个简单的 C# 程序,它有一组单元测试。这是在 Visual Studio 2010 上开发的。现在在另一台计算机上,我尝试使用 Visual Studio 2012 重新加载此解决方案并运行测试。我能够成功地重建解决方案,但是没有单元测试出现在测试资源管理器中。Visual Studio 项目(解决方案)位于 LaCie 以太网网络驱动器上。我将整个解决方案复制到本地 C: 驱动器,从网络驱动器关闭解决方案并在本地 C: 驱动器上重新打开复制的解决方案。现在,当我构建解决方案时,Test Explorer 会显示所有测试。我回去打开网络驱动器上的副本,测试资源管理器再次显示没有测试。它说要构建解决方案以查看测试列表,但是在成功构建包含主项目和单元测试项目的解决方案后,它仍然显示相同的消息。见下图: 在此处输入图像描述

为什么项目位于网络驱动器上会导致单元测试像这样失败而根本没有失败消息?

0 投票
2 回答
1131 浏览

c# - UnitTesting : 已与其底层 RCW 分离的 COM 对象无法使用

我在 C# 中创建了一个 UnitTesting 项目并面临一些问题。

首先,我想做一些在开始时应该只发生一次的 Connect 功能。之后,我试图从 Excel 文件中读取一些记录并测试一些插入操作,并且每次插入发生时 TestCleanUp() 在调用该构造函数然后调用 Initialize 方法后被触发。我不希望构造函数在每条记录仅插入一次后触发。我很困惑将我的 Connect 功能放在哪里以及如何避免每次都调用构造函数。

现在我可以按照建议在 ClassInitialize 中建立初始连接。现在,当我在 ClassInitialize 中创建我的 COM 对象的实例时,现在正在建立初始连接。现在我有不同的测试方法要测试。现在,当我运行我的程序时,在执行第一个测试方法“无法使用已与其底层 RCW 分离的 COM 对象”后出现异常?

我猜当它试图执行第二个测试方法时 COM 对象被破坏了。如何保持这个 COM 对象活着?我不是在调用 ReleaseCOMObject。

0 投票
1 回答
852 浏览

visual-studio-2012 - VS2012 单元测试中的代码覆盖错误

我第一次将单元测试添加到现有解决方案中。这是具有多种项目类型的遗留解决方案。我的单元测试项目仅引用解决方案中的另一个项目,即类库。

我的测试运行良好,但是当我选择“Analyze Code Coverage for Selected Tests”时,Visual Studio 要么崩溃,要么在“输出 - 测试”窗口中出现以下错误:

不支持此类接口(HRESULT 异常:0x80004002 (E_NOINTERFACE))
不支持此类接口(HRESULT 异常:0x80004002 (E_NOINTERFACE))

我尝试在单独的新解决方案中运行单元测试和代码覆盖率,一切正常。这让我相信这是现有代码和/或解决方案的问题。

我什至不知道从哪里开始寻找。有什么建议么?

谢谢,
跳过

0 投票
2 回答
1551 浏览

c# - 单元测试有效字符的最佳实践

假设一个方法接受一个字符串作为输入参数,并且这个字符串只能包含从 1 到 8 的数字和一个破折号(“/”)。

在开发测试驱动时,您将如何编写单元测试来验证该方法是否进行了正确的参数检查?

我的第一个想法是颠倒 ArgumentException 的要求和测试,即有一个数据驱动的单元测试,它使用所有其他可能的字符调用该方法并期望 ArgumentException。然而,……这感觉有点像用大锤敲碎坚果……

有没有针对这种情况的最佳实践?