Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringBoot:如何仅在jenkins上运行测试类?_Java_Unit Testing_Spring Boot_Jenkins - Fatal编程技术网

Java SpringBoot:如何仅在jenkins上运行测试类?

Java SpringBoot:如何仅在jenkins上运行测试类?,java,unit-testing,spring-boot,jenkins,Java,Unit Testing,Spring Boot,Jenkins,我们有一个测试班,我只想在詹金斯身上运行 我认为这可以通过检查活动弹簧配置文件(例如jenkins)或当本地机器名为XYZ时实现 问题是,当我们试图在jenkins以外的机器上运行应用程序时,应用程序上下文的加载失败 因此,我无法检查测试类本身的@Before方法中的概要文件或参数 @RunWith(SpringRunner.class) @SpringBootTest(classes = Config.class) @AutoConfigureTestDatabase(replace = Au

我们有一个测试班,我只想在詹金斯身上运行

我认为这可以通过检查活动弹簧配置文件(例如
jenkins
)或当本地机器名为
XYZ
时实现

问题是,当我们试图在jenkins以外的机器上运行应用程序时,应用程序上下文的加载失败

因此,我无法检查测试类本身的@Before方法中的概要文件或参数

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Config.class)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ActiveProfiles("clusterMongo")
public class MongoTest {


    @Before
    public void setupClass() {

        // Ignore test if not running on white listed machines
        org.junit.Assume.assumeTrue(AuthTools.isJenkins());   // wonT work !!

    }

有什么办法可以做到这一点吗


我可以使用条件bean吗?

您有一个声明性选项,而不是通过编程实现

您可以将surefire插件配置为跳过特定Maven配置文件的特定测试:

<profile>
<id>skip-test</id>
  <build>
    <plugins>
    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                    <excludes>
                        <exclude>**/MongoTest.java</exclude>
                    </excludes>
            </configuration>
    </plugin>
</plugins>
</build>
</profile>

跳过测试
org.apache.maven.plugins
maven surefire插件
**/MongoTest.java

在非Jenkins运行时:
mvn测试-Pskip测试

您最好将其放在一个单独的integrationTest目录中,只在Jenkins中运行该源代码集。Gradle在这里举了一个例子来支持这一点:但是有很多方法可以用你用来构建和运行的任何工具来实现。酷,我们以后也会考虑这个问题。这可能是最好的方法之一。