问题标签 [junit-jupiter]

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

python - 为什么当使用带有 pd.Series 的变换构造时出现错误:长度不匹配

我有一个大的pandas.DataFrame(约 250 万行),有 10 列。我需要填充列noshow_label,我按列对数据进行分组event_label,如果列event_action中有一个值no_show,那么我需要粘贴,True否则我需要粘贴False。为此,我使用这种结构:

当我尝试启动此代码时,它引发了一个错误:

注意:列event_action包含诸如no_show, show_widget,之类的值test_passed。列“事件标签contains labels names like123123-A”、“123123-B”...

你有什么想法来解决它吗?

0 投票
1 回答
1079 浏览

java - 如何在 Junit 5 jupiter 扩展中从我的测试中获取字段

我为我创建的驱动程序的测试有一个自定义标签。我正在寻找一种在 BeforeEach 和 AfterEach 期间使用新的 Junit5 jupiter 扩展来初始化和退出此驱动程序的方法。

我已经看到有一个 AnnotationSupport.class 应该可以帮助您获取带有某些注释但没有找到任何示例的字段。

我想要的只是能够处理用我的扩展注释注释的字段。

0 投票
1 回答
174 浏览

java - 有没有办法用 jUnitJupiter 测试列表/集合的顺序?

我正在使用 JunitJupiter 进行单元测试。现在我不知道如何检查列表的顺序。

代码:

我对单元测试很陌生,我搜索了很多,但我不知道如何去做。

那么,有没有办法用 jUnitJupiter 做到这一点,或者有其他方法可以做到这一点吗?

0 投票
0 回答
580 浏览

junit - JUnit Jupiter 5.5.1 依赖于 JUnit Platform 1.3.2?

JUnit Jupiter 5.5.1我有一个不喜欢的印象JUnit Platform 1.3.1。如果两者都在 gradle 依赖项中指定,那么所有 JUnit 5 测试都将被忽略。请参阅我之前的 SO Q&A。例如,我认为以下组合行不通:

相反,我必须使用以下组合。也就是说,JUnit Platform Launcher一定1.5.1不是1.3.1

那是几个月前的事了。今天,我刚刚意识到,在我的项目中,那些 JUnit 5 测试再次被忽略了。然而,经过更深入的检查,我发现了以下依赖链:

有谁知道为什么这里Junit Jupiter 5.5.1将取决于JUnit Platform Commons 1.3.2

使用来自dependencyInsight 的更多信息进行更新

根据SODiscussion.gradle.org中的讨论,这->意味着存在依赖的“冲突解决”,我们可以使用该任务dependencyInsight来获得更多洞察力。我这样做了,但我仍然不太知道如何解释结果。

我的最终目标只是让我的 JUnit 5 测试运行。关于如何做到这一点的任何想法?

更新 2 - 添加了 gradle 文件

gradle 构建文件(和 gradle.properties)列在这个GitHub Gist 上。这是一个多项目构建,所以根目录有build.gradle,其中一个子项目profilerprofiler.gradle

0 投票
0 回答
165 浏览

java - 使用 jupiter 的 java 参数化单元测试:更好地参考测试数据集

对于基于 gradle 的侧轨项目,我从 junit4 移动到 junit5(jupiter),这在编写参数化测试时提供了更大的灵活性。那太棒了。

然而,有一个烦人的细节使调试测试变得繁琐:与 Intellij IDEA 的测试运行器不同,gradle 测试运行器将所有测试用例结果可视化为一个列表,但列表的条目(即测试用例)由数据的数字键引用在参数化测试的数据源中设置条目。所以不是像 IDEA 的测试运行器那样通过实际的测试数据。这并不能真正帮助理解许多测试用例中的哪一个失败。

我知道这是我面临的一个问题,因为我将测试运行委托给了 gradle。使用 IDEA 自己的测试运行程序时一切正常。但是,我犹豫要不要使用那个:我使用 gradle 的原因是我使用了外部构建管道。并且使用两个不同的测试运行器闻起来就像必须处理不同的测试结果......

所以我的问题是:如何让 gradle 测试运行器使用实际的测试数据作为测试用例的参考?类似于 IDEA 的测试运行器所做的事情?我尝试使用地图,但 jupiter 解释说它无法流式传输.... 我发现的唯一解决方法是将一些数据集标识符输出到 StdOut,但这隐藏在输出的其余部分中。任何人都可以告诉我如何以更优雅的方式实现这一目标?理想情况下如下例所示?

一个例子:

这是实际的可视化(输入以便我不必发布图像):

这是所需的可视化:

这将更容易立即看到“Writer”数据集(Writer.class)的测试用例失败......

0 投票
1 回答
5030 浏览

java - Spring Boot DataJpaTest(用于存储库)因 java.lang.IllegalStateException 失败:无法加载 ApplicationContext

我想测试我的 SpringBootApplication 的 Repository-Layer。 我使用了以下文章: https ://www.baeldung.com/spring-boot-testing#integration-testing-with-datajpatest

但是加载应用程序上下文存在问题。我认为这是一个 springBoot/Bean 问题。

这是我的测试课:

应用类:

和 ComponentRepository 接口:

和组件实体:

当我启动 ComponentTest 时,问题是以下错误:这是错误堆栈的示例:

我检查了不同的 Spring-boot-test 注释,如 @SpringBootTest,但没有任何改变。有没有人有同样的问题或解决方案?如果您需要更多信息/代码片段/错误堆栈,请与我联系。谢谢

0 投票
1 回答
1023 浏览

java - 如何将 JUnit 注解组合成自定义注解?

(使用 OpenJDK-13 和 JUnit5-Jupiter)

问题是我的每个单元测试都使用了一个不小的 JUnit 注释系统,如下所示:

这使得测试创作有点乏味,测试代码有点长,当然,当需要更改时,这是一件苦差事!

想知道我是否可以创建自己的 JUnit 注释:@CcrStandardTest,这意味着上面的所有注释?

我还尝试在类定义中向上移动注释(希望它们随后适用于类的所有方法),但编译器说不:“@ParameterizedTest 不适用于类型”

0 投票
2 回答
356 浏览

java - JUnit5-Jupiter:组合(=“meta”)注释无法解析为注释定义

我定义了自己的 JUnit 注释:

然后,我能够在我的测试中使用该注释:

  • 我的运行配置:
    JVM 选项:-ea
    类:myorg.qa.ccrtesting.ccrstandardtests.CcrStanConTest- 这是 IDE 建议的(并已验证指向正确的类,该类包含我的原型测试方法)

但是,这会导致:jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [java.lang.String arg0] in method [public void...

  • 我尝试String testData从测试方法签名中删除,但 JUnit 没有执行任何测试:No tests found

  • 当我在@Test原型测试方法上方添加时,它会执行,但是:

    1. 似乎没有@CcrStandardTest应用我在下面定义的任何注释
    2. IDE 建议suspicious combination @Test and parameterized source
      (我已经知道@ParameterizedTest暗示@Test,只是不确定为什么 IDE 能够找到自定义注释但 JUnit 不是?)
0 投票
0 回答
78 浏览

junit - 在 JUnit5 中使用 TestSuites

我喜欢用相同的代码测试类似类型的类,所以我不会忘记做一些事情。使用 JUnit4(技术上是 Junit3)我创建了这样的类:

但是我无法在纯 JUnit4 中实现类似的东西,现在在 JUnit5 中我也找不到类似的东西。

有没有办法使用测试套件来动态创建一组测试?我希望测试尽可能小,因为testEqualsReturnsTrueForSameObject()“失败”比testPojo()“失败”有用得多。

0 投票
0 回答
258 浏览

java - JUnit Jupiter 相当于 JUnit4 测试用例套件

我试图弄清楚如何使用 Eclipse 在 JUnit Jupiter 中创建等效的 JUnit4 测试用例套件。

例如,假设我在 JUnit 4 中有以下测试用例套件:

假设所有测试都移植到 JUnit Jupiter,如何在 JUnit Jupiter 中创建等效套件?

我尝试了以下方法,datatypes包含上述类的包在哪里:

但是,当我尝试以与运行 JUnit4 测试用例套件相同的方式运行时(通过说“作为 JUnit 测试运行”),我收到以下错误消息:

我在这里做错了什么?使用 JUnit 4 这工作正常。


编辑:

我对此进行了深入研究,并想添加这个有趣的部分:我实际上可以import org.junit.runner.Description,它工作正常,然后调用该createSuiteDescription方法就好了,那么这个错误怎么会呢?显然,由于某种原因,使用错误类型的参数调用了该方法。函数签名是:

但是根据错误信息,它是使用以下参数调用的:

这显然是在外部类中调用的JUnitPlatformTestTree.java:108。这些可能是不兼容的版本吗?如果是这样,什么是兼容版本。

但是检查 JUnitPlatformTestTree.java 中的错误行,似乎使用正确的参数调用了该函数:

我正在使用以下 gradle 导入:


编辑2:

好的,我进一步追踪了这一点,发现在 gradle 中,我们有以下依赖项,当导入时似乎会破坏一切:

如果我注释掉该依赖项,测试用例套件中的错误就会消失。但是,由于该项目需要来自 json.simple 的 JSONObject 和 JSONArray,因此大部分项目停止工作。

这似乎是一个不兼容错误。是什么原因造成的,我该如何解决?