问题标签 [parameterized-unit-test]

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 投票
25 回答
149713 浏览

python - 如何在 Python 中生成动态(参数化)单元测试?

我有某种测试数据,想为每个项目创建一个单元测试。我的第一个想法是这样做:

这样做的缺点是它在一次测试中处理所有数据。我想动态为每个项目生成一个测试。有什么建议么?

0 投票
7 回答
36994 浏览

java - 具有动态测试数量的 JUnit 测试

在我们的项目中,我有几个JUnit测试,例如从目录中获取每个文件并对其运行测试。如果我在其中实现一个testEveryFileInDirectory方法,那么TestCase这将显示为只有一个可能失败或成功的测试。但我对每个单独文件的结果感兴趣。如何编写TestCase/TestSuite以使每个文件显示为单独的测试,例如在 Eclipse 的图形 TestRunner 中?(为每个文件编写明确的测试方法不是一种选择。)

还将问题ParameterizedTest 与 Eclipse Testrunner 中的名称进行比较

0 投票
5 回答
2465 浏览

java - Eclipse Testrunner 中带有名称的 ParameterizedTest

当您使用 Eclipse TestRunner 运行 JUnit 4 ParameterizedTest 时,图形表示相当愚蠢:对于每个测试,您都有一个名为[0],[1]等的节点。是否可以给测试[0],[1]等明确命名?为测试实施一种toString方法似乎没有帮助。

(这是 JUnit 测试的后续问题,具有动态数量的测试。)

0 投票
6 回答
16065 浏览

python - 编写可重用(参数化) unittest.TestCase 方法

可能重复:
如何在 python 中生成动态(参数化)单元测试?

我正在使用 unittest 包编写测试,我想避免重复代码。我将进行许多测试,它们都需要非常相似的方法,但每次只有一个值不同。一个简单而无用的例子是:

有没有办法写上面的例子,而不是每次都重复所有的代码,而是写一个通用的方法,例如

并告诉 unittest 用不同的输入来尝试这个测试?

0 投票
6 回答
27986 浏览

c# - MSTest 等效于 NUnit 的参数化测试?

NUnit 支持一项功能,您可以在其中指定一组数据输入,以便多次运行单元测试。

使用 MSTest 完成相同类型的事情的最佳方法是什么?我找不到类似的属性集。

0 投票
1 回答
248 浏览

.net - 具有自动代码探索功能的参数化测试工具

我已经检查并玩了一点Microsoft Pex。它是一个非常方便的工具/库,尽管用它编写参数化单元测试并不那么直接。但是如果使用得当,它可以提供比编写手动单元测试更好的测试代码覆盖率。更不用说编写这些测试所花费的时间了。它也与 Visual Studio 很好地集成在一起。

我想知道是否有任何其他工具可以让您编写参数化单元测试并运行它们,以便内部算法智能地选择值以提供完整的代码测试覆盖率?

如果其他一些工具/库像 NUnit+Moq 一样易于使用,我会更加高兴。Pex 的学习曲线相当陡峭(我想 Moles 也是如此)。

NUnit 是否有计划在未来支持带有智能参数选择的参数化测试?有人有这方面的内幕吗?

0 投票
2 回答
1065 浏览

java - 如何在泛型类型的集合上调用 JUnit 参数化测试运行器?

所以我试图Parameterized在加载单个泛型类型对象时调用 JUnit 测试运行程序。要使用的特定类对于后代类是已知的。

最初我设法获得了一个方法,它返回一个Collection<T>供 JUnit 使用的方法,但后来我意识到 JUnit 实际上需要一个Collection<T[]>- 由于 Java 不愿意/拒绝创建泛型数组,我在创建这个数组时遇到了麻烦。

现在 JUnit 需要Collection<T[]>这样的:

所以我想通过执行以下操作来更改返回类型:

不幸的是,Java 不允许我这样做,因为您无法创建通用数组。

我很想把声明说成,result.add((T[])new Object[]{someBean});但这安全吗?或者,还有更好的方法?

0 投票
0 回答
1311 浏览

maven - 无法在 Maven 中强制使用更新版本的surefire-plugin

我有一个 Maven 项目,我正在使用 surefire-plugin 来运行我的测试。以前,我没有强制任何版本,maven 为我选择了 2.4.3(为什么??)。

我想改用 2.7.2,它对 JUnit4 有更好的支持(尤其是参数化测试)。

因此,我像这样修改了根父 POM:

但是,在子模块中,这是肯定的:2.4.3 不断被调用。这是 -X 调试跟踪:

而在父 pom 中,使用 2.7.2:

甚至有效的 pom 显示插件的“版本”如果没有在子模块中继承:

任何帮助将非常感激。

问候,拉斐尔

0 投票
2 回答
259 浏览

junit4 - 使用 Junit 进行参数化测试

如何在 JUnit 中使用参数化测试来测试以下方法

当我想用 10 个不同的 args 测试它时,我想知道如何使用 Junit 进行参数化测试来测试这个方法。

0 投票
2 回答
866 浏览

java - 如何在参数化测试中对测试数据进行分组?

我正在开发一个具有网格的应用程序,并且只有网格的某些点被认为是有效的。我需要使用所有可能的网格值或至少使用所有边界点对此进行广泛测试。

我已经尝试过参数化测试。它可以正常工作,因为数据在某个点之后变得无法管理。下面给出了 3x3 网格的示例测试。

关于如何分组/管理数据的任何输入,以便我的测试保持简单易读?