- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Cannot execute JUnit 5 test only for one Spring profile [duplicate]
@IfProfileValue vs @ActiveProfiles in the context of Spring test
(1 个回答)
去年关闭。
我想设置 Spring Profile 以测试不同的 JUnit 测试集。我试过这个:
应用程序属性:
spring.profiles.active=dev
@IfProfileValue(name = "spring.profiles.active", values = {"test"})
@ActiveProfiles(profiles = {"test"})
public class SecondGenericTest {
@Test
public void secGenericTest() {
System.out.println("Performing test ... for profile test");
}
}
@IfProfileValue(name = "spring.profiles.active", values = {"test"})
@ActiveProfiles(profiles = {"test"})
public class SecondGenericTest {
@Test
public void secGenericTest() {
System.out.println("Performing test ... for profile test");
}
}
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>plugin</groupId>
<artifactId>org.plugin</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.10.2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
</dependency>
<!-- Dependency for for Netty. Remove it when WebFlux is not used -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<version>4.1.45.Final</version>
<classifier>linux-x86_64</classifier>
</dependency>
<!-- Packages for testing -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<version>2.0.4.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-engine</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-commons</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.6.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>test</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<archive>
<manifestEntries>
<Dependencies>jdk.unsupported</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>12</release>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>repository.spring.release</id>
<name>Spring GA Repository</name>
<url>http://repo.spring.io/release</url>
</repository>
<repository>
<id>sonatype-releases</id>
<url>https://oss.sonatype.org/content/repositories/releases/</url>
</repository>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
<repository>
<id>jvnet-nexus-snapshots</id>
<name>jvnet-nexus-snapshots</name>
<url>https://maven.java.net/content/repositories/snapshots/</url>
</repository>
</repositories>
最佳答案
正如 Sam Branen 在此 answer 中所解释的那样:
As stated in the Javadoc,
@IfProfileValue
is used to indicate that a test is enabled for a specific testing profile or environment.Whereas,
@ActiveProfiles
is used to declare which active bean definition profiles should be used when loading an ApplicationContext for test classes.In other words, you use
@IfProfileValue
to control whether a test class or test method will be executed or skipped, and you use @ActiveProfiles to set the active bean definition profiles that will be used to load the ApplicationContext for your test.
@ActiveProfile
应该做的伎俩。
@Tag("...")
来做到这一点。注释,并将其设置为您的
configuration 的参数,通过将测试类型更改为您选择的标签
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<!-- include tags -->
<groups>integration, feature-168</groups>
<!-- exclude tags -->
<excludedGroups>slow</excludedGroups>
</configuration>
</plugin>
关于java - ActiveProfile 在 Junit5 测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60355831/
如果我将它们设置为 VM args,我的事件配置文件将正常工作。 我有一个测试,我想使用 @ActiveProfiles("local")。 这是我正在使用的类注释: @RunWith(SpringJ
出于测试目的,我正尝试在内存中的 H2 中运行查询。由于 H2 限制,某些语法不起作用。我希望根据 Spring Boot 中的 @Activeprofile 更改语法。我的代码看起来像这样: if
我创建了一个元注释@EmbeddedMongoDBUnitTest,它激活了两个要在基于 Spring 的单元测试中使用的配置文件。基本设置有效: @Documented @Inherited @Re
我正在使用 @Profile Spring 注释在嵌入式、独立和容器管理的数据源之间进行选择。为了选择“嵌入式”,我的集成测试被注释以激活适当的配置文件: @RunWith(SpringJUnit4C
我有一个带有测试类的 spring-boot 应用程序,用于针对我的 mongodb 测试一些 CRUD 操作和服务。到目前为止,一切都是在我的机器上完成的(mongo 在本地主机上)。运行测试时,我
我在 Spring Boot 应用程序中引入了配置文件,并将一些属性从 application.properties 移到了 application-puppet.properties。这在运行应用程
这两个注解有什么区别? @ActiveProfiles("test") @TestPropertySource({"classpath:/application-test.properties"})
这个问题在这里已经有了答案: Cannot execute JUnit 5 test only for one Spring profile [duplicate] @IfProfileValue v
有没有办法覆盖Spring中测试父类(super class)设置的@ActiveProfile? 这是我的配置: 所有测试的父类(super
这是我的 applicationContext 定义的一部分,用于检索一些属性。 如您所见,我让 spring.profiles.active 决定将读取哪些属性。 我的测试注释为: @Acti
我指的是 Spring 测试和以下注释: @IfProfileValue @ActiveProfiles 我目前在我的应用程序中使用 @ActiveProfiles ,最近发现了 @IfProfile
我正在做一个项目,我们有一个组件,其中包括: 核心 连接到外部系统 1 连接到外部系统 2 连接器是互斥的(如果连接器 1 处于事件状态,则连接器 2 始终处于非事件状态,反之亦然)。核心和单个连接器
我读了很多书,但找不到告诉我如何在 @activeprofiles 注释中包含 Maven 配置文件的解决方案。可不可以? 我试图解决的问题是在我的测试执行之前启动 H2 和 flyway,但这并没有
在 Spring Test 配置中使用 @Profile 和 @ActiveProfiles 有什么区别 @Configuration @EnableRetry @ActiveProfiles("un
我正在学习 Spring Core 认证,我对将 profiles 用于 JUnit 测试 有一些疑问。 所以我知道如果我用下面的方式注释一个类: @Profile("stub") @Reposito
我需要在集成测试期间忽略以下 @Transactional 注释。 @Service public class MyClass { @Transactional(propagation = P
我是一名优秀的程序员,十分优秀!