Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Spring boot 加载外部JAR的Spring引导测试(相当于loader.path)_Spring Boot_Talend_Spring Boot Test - Fatal编程技术网

Spring boot 加载外部JAR的Spring引导测试(相当于loader.path)

Spring boot 加载外部JAR的Spring引导测试(相当于loader.path),spring-boot,talend,spring-boot-test,Spring Boot,Talend,Spring Boot Test,我们有一个应用程序,它在运行时依赖于外部jar(例如,在springboot中运行的Talend作业)。现在我们可以使用-Dloader.path参数从Spring Boot启动它。但是,我们无法使用外部lib文件夹运行集成测试(即从Spring引导测试启动Talend作业)。使用SpringBoot test为集成测试加载外部作业是否可能有类似的选项?我对此进行了排序 Intellij->Select Module->Open Module Setting->Dependency->Add D

我们有一个应用程序,它在运行时依赖于外部jar(例如,在springboot中运行的Talend作业)。现在我们可以使用-Dloader.path参数从Spring Boot启动它。但是,我们无法使用外部lib文件夹运行集成测试(即从Spring引导测试启动Talend作业)。使用SpringBoot test为集成测试加载外部作业是否可能有类似的选项?

我对此进行了排序

Intellij->Select Module->Open Module Setting->Dependency->Add Dependency->选择要测试的外部jar->范围

这样,它可以很好地用于测试用例,同时不会在实际的主代码中使用

罐子放在哪里?

考虑到它将在测试用例中使用,我建议在src/test/lib中提交jar,并在添加依赖项时选择此路径

Intellij生成.iml文件(其中包含一个依赖项列表),如果您在repo中提交了相同的文件,那么其他团队成员无需进一步设置即可轻松使用

现在,linux环境或CIT环境的问题仍然存在。我认为我们可以通过CLASSPATH env变量添加这个jar,然后启动任何CIT作业

混合的解决方案,但它的工作正如我所期望的

还有一个解决方案: 在本地repo中安装外部jar,并在pom.xml中添加具有测试范围的依赖项。这是一个简单的选择

在本地回购上安装jar:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>3.0.0-M1</version>
    <executions>
        <execution>
            <id>install-jar</id>
            <phase>initialize</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <file>${project.basedir}/src/test/lib/somejar-1.0.jar</file>
                <groupId>com.beta.gamma</groupId>
                <artifactId>somejar</artifactId>
                <version>1.0</version>
                <packaging>jar</packaging>
            </configuration>
        </execution>
    <executions>
</plugin>

org.apache.maven.plugins
maven安装插件
3.0.0-M1
安装jar
初始化
安装文件
${project.basedir}/src/test/lib/somejar-1.0.jar
com.beta.gamma
萨默贾尔
1
罐子

现在可以添加相同的依赖项作为其他依赖项。这将在环境中起作用。

您是否尝试过
@SpringBootTest(value={“loader.path=/your/path”})
。或者在不同的spring配置文件中添加
loader.path=/your/path
进行测试,即不同的application-profile.yml,或者在启动测试时在
VM参数中添加
-Dloader.path=/your/path
?否。这两个参数都不起作用。这似乎与启动器有关-我们需要一个类似于PropertyLancher的测试启动器。您如何运行单元测试?朱尼特?还有没有正当理由不在Maven/Gradle文件中包含这个外部Jar文件?