我有一些依赖于测试数据的集成测试.该测试数据在阶段创建并在阶段中pre-integration-test删除post-integration-test.
我的问题是,如果我-DskipITs在Maven命令行上使用这些阶段仍然执行.
有没有什么方法-DskipITs可以跳过预集成测试和后集成测试阶段?
这是pom中的插件定义:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
<configuration>
<driver>com.mysql.jdbc.Driver</driver>
<url>${database.url}</url>
<username>${database.user}</username>
<password>${database.pw}</password>
</configuration>
<executions>
<execution>
<id>create-integration-test-data</id>
<phase>pre-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<orderFile>descending</orderFile>
<fileset>
<basedir>${basedir}/src/test/resources/sql</basedir>
<includes>
<include>AdministrationTestTeardown.sql</include>
<include>AdministrationTestSetup.sql</include>
</includes>
</fileset>
</configuration>
</execution>
<execution>
<id>remove-data-after-test</id>
<phase>post-integration-test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<fileset>
<basedir>${basedir}/src/test/resources/sql</basedir>
<includes>
<include>AdministrationTestTeardown.sql</include>
</includes>
</fileset>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud) integration-testing maven maven-failsafe-plugin maven-lifecycle
我有一个 REST 服务,它接受一个 id 和两个字符串作为 json,并返回 id 和连接为 json 的两个字符串。如果出现错误,它可以返回状态代码 400、404 和 500,并在正文中包含 json 错误响应。
swagger.json 文件如下所示:
{
"swagger": "2.0",
"info": {
"description": "---",
"version": "---",
"title": "---"
},
"basePath": "/rest",
"tags": [
{
"name": "Concatenation resource"
}
],
"schemes": [
"http",
"https"
],
"paths": {
"/concatenation/{id}/concat": {
"post": {
"tags": [
"Concatenation resource"
],
"summary": "Concatenates two strings",
"description": "",
"operationId": "concatenate",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true, …Run Code Online (Sandbox Code Playgroud) java openapi spring-webflux openapi-generator spring-webclient
我正在使用gradle分发插件创建一个zip文件:
distributions {
installer {
baseName 'installer'
contents {
from 'src/main/installer'
}
}
}
Run Code Online (Sandbox Code Playgroud)
在zip中,文件被放入一个名为<basename>-<version>eg 的文件夹中installer-0.2.1-SNAPSHOT,我希望它们直接放在zip的根目录中,这可能吗?
我想在Camel路由中生成随机UUID.(骆驼版2.15.3)
我希望UUID对于每次路由运行都是不同的,即使路由运行两次而没有重新启动Camel上下文.我正在使用java.util.UUID(Java 1.8.0)生成随机UUID.
但是路由为每次路由运行生成相同的UUID,但是如果重新启动Camel上下文,则生成新的UUID.
骆驼路线:
import org.apache.camel.LoggingLevel;
import org.apache.camel.builder.RouteBuilder;
import java.util.UUID;
public class UuidLogger extends RouteBuilder {
private final String loggerID = getClass().getName();
@Override
public void configure() throws Exception {
from("direct:uuidLogger").routeId("uuidLogger")
.log(LoggingLevel.INFO, loggerID, "UuidLogger triggered with $simple{body}, headers: $simple{headers}")
.onException(Exception.class)
.log(LoggingLevel.ERROR, loggerID, "Fail: Exception. Body: $simple{body}, Headers: $simple{headers}, Stacktrace: $simple{exception.stacktrace}")
.handled(true)
.end()
.setBody(simple(UUID.randomUUID().toString()))
.log(LoggingLevel.INFO, loggerID, "Generated UUID: $simple{body}")
.to("mock:uuidLoggerMock")
.log(LoggingLevel.INFO, loggerID, "UuidLogger done");
}
}
Run Code Online (Sandbox Code Playgroud)
显示失败的JUnit测试:
import com.systematic.cura.integration.vans.common.UuidLogger;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
public class UuidLoggerTest extends …Run Code Online (Sandbox Code Playgroud) java ×2
apache-camel ×1
build.gradle ×1
gradle ×1
gradlew ×1
java-8 ×1
maven ×1
openapi ×1
uuid ×1