这个问题以前有人问过(例如这里),但我的观察与之前报道的不一样。
我注意到,为了让JUnit 5工作,我必须包括整个JUnit 5工件
testImplementation('org.junit.jupiter:junit-jupiter:5.5.1')
相反,如果我包含单个工件,那么JUnit测试将不会被拾取
testImplementation('org.junit.platform:junit-platform-runner:1.3.1')
testImplementation('org.junit.platform:junit-platform-launcher:1.0.0')
testImplementation('org.junit.jupiter:junit-jupiter-engine:5.5.1')
testImplementation('org.junit.jupiter:junit-jupiter-api:5.5.1')
testImplementation('org.junit.jupiter:junit-jupiter-params:5.5.1')
testImplementation('org.junit.vintage:junit-vintage-engine:5.5.1')
以前有人见过类似的东西吗?
(我也在一个非Spring启动项目中尝试了这个方法——在这种情况下,可以包含单个工件。这造成了很多混乱。)
在这里,我用gradle显示了结果,但我用maven也有类似的结果。
我正在使用Gradle 5.4.1
、Spring Boot 2.1.7。RELEASE
和JUnit 5.5.1
我正在包括完整的构建。gradle和下面的测试类
build.gradle
plugins {
id 'org.springframework.boot' version '2.1.7.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation('org.junit.jupiter:junit-jupiter:5.5.1')
// testImplementation('org.junit.platform:junit-platform-runner:1.3.1')
// testImplementation('org.junit.platform:junit-platform-launcher:1.0.0')
// testImplementation('org.junit.jupiter:junit-jupiter-engine:5.5.1')
// testImplementation('org.junit.jupiter:junit-jupiter-api:5.5.1')
// testImplementation('org.junit.jupiter:junit-jupiter-params:5.5.1')
// testImplementation('org.junit.vintage:junit-vintage-engine:5.5.1')
}
test {
useJUnitPlatform()
}
DemoApplicationTest.java
package com.example.demo;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class DemoApplicationTests {
@Test
public void failMe() {
Assertions.assertTrue(Boolean.FALSE);
}
}
请注意,在这种情况下,我期望在测试方法失败()
中抛出异常——以证明测试方法已被运行程序拾取并且没有被默默忽略。
感谢@johanneslink的提示(在开头问题的评论中),现在我想我更好地理解了这些问题:
最好使用聚合工件
testImplementation('org.junit.jupiter:junit-jupiter:5.5.1')
如果您真的想使用单个工件,请确保它们的版本兼容
这种组合会有用的
testImplementation('org.junit.platform:junit-platform-launcher:1.5.1')
testImplementation('org.junit.jupiter:junit-jupiter-engine:5.5.1')
testImplementation('org.junit.jupiter:junit-jupiter-api:5.5.1')
但不是这个
testImplementation('org.junit.platform:junit-platform-launcher:1.3.1')
testImplementation('org.junit.jupiter:junit-jupiter-engine:5.5.1')
testImplementation('org.junit.jupiter:junit-jupiter-api:5.5.1')
(其他三个工件不相关,因此我在这里省略它们。例如,根据JUnit 5用户指南
junit platform runner
运行程序,用于在JUnit 4环境中的JUnit平台上执行测试和测试套件。
并且与此无关。)
如果我用MockBean替换Autowired的话,它是有效的,但我不知道为什么
根据我的理解,函数和void函数可以被调用,并且它们将在其中执行代码。 然而,我不明白括号内的变量的用途。即使少了其中一个,代码也无法运行。然而,似乎您可以为这些变量分配不同的名称,它仍然可以工作。 这些变量是如何相互联系/相互作用的?指: 1.)双倍幂(双基,int指数) 2.)void print_pow(双基,int指数) 3.)print_pow(基数、指数);
我有两个组件A和B,其中组件A包含一个按钮。我希望当用户点击这个按钮时,在组件B上启动一个功能 组件 B 使用路由渲染。我正在考虑使用带有可观察布尔值的服务,该布尔值指示是否单击了 A 中的按钮。这是实现它的正确方法吗?
本文向大家介绍UIWebView和JavaScript之间是怎么交互的?相关面试题,主要包含被问及UIWebView和JavaScript之间是怎么交互的?时的应答技巧和注意事项,需要的朋友参考一下 UlWebView是i〇S SDK中渲染网面的控件,在显示网页的时候,我们可以hack网页 然后显示想显示的内容。其中就要用至JavaScript的知识,而UlWebView与javascript交互
问题内容: 我的json文件看起来像这样,我正在尝试在for循环中访问元素。 我这样做是这样的: 但是我收到错误消息:“ TypeError:列表索引必须是整数,而不是dict”。我是python(和json)的新手。有人可以建议我要去哪里错吗? 问题答案: 您遍历该 值 通过引用的名单, 没有 指标。 只需 直接 使用这些值(字典): 您可能想给它一个更有意义的循环名称:
问题内容: 我正在学习使用Python和API(特别是此世界杯API,http://www.kimonolabs.com/worldcup/explorer) JSON数据如下所示: 我只是试图打印此API中的所有名字。这是我所拥有的: 但是当我运行它时,出现错误“ … TypeError,… TypeError:列表索引必须是整数,而不是str”。 我四处寻找解决方案,但似乎发现了更多“更深入”