作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含包 com.temp
的模块,它具有服务的接口(interface)和实现 - ServiceInterface
和 ServiceImpl
。我的模块信息中有:
module temp {
exports com.temp;
provides com.temp.ServiceInterface with com.temp.ServiceImpl;
}
这是我的 pom.xml 的一部分
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<skipTests>${skip.integration.tests}</skipTests>
</configuration>
</execution>
</executions>
</plugin>
这是我的 TempIT
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
class TempIT {
@Test
void tempTest() {
System.out.println("JDKModulePath:" + System.getProperty("jdk.module.path")); //LINE Y
ServiceLoader<ServiceInterface> loader = ServiceLoader.load(ServiceInterface.class);
System.out.println(loader.findFirst().get().getString());//LINE X
}
}
LINE Y 打印:JDKModulePath:null
。在 LINE X 处,我得到 java.util.NoSuchElementException: No value present
。
如何进行JPMS服务的集成测试?是否可以在模块外部进行操作,以便将模块作为一个整体进行检查,但无需创建额外的测试模块?
编辑1:这些是实现和接口(interface):
package com.temp;
public class ServiceImpl implements ServiceInterface {
@Override
public String getString() {
return "This is test string";
}
}
package com.temp;
public interface ServiceInterface {
public String getString();
}
最佳答案
这似乎是一个错误,因为故障安全不会将模块放在模块路径上。查看问题https://issues.apache.org/jira/browse/SUREFIRE-1570
关于java - 如何在不创建额外测试模块的情况下使用故障保护和 Junit5 测试 JPMS 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52314884/
我是一名优秀的程序员,十分优秀!