如何在Java 8上的maven surefire中设置单元测试的时区?
在Java 7中,此功能以前systemPropertyVariables
曾在以下配置中使用,但在Java 8中,测试仅使用系统时区。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<user.timezone>UTC</user.timezone>
</systemPropertyVariables>
为什么会这样,我该如何解决?
现在user.timezone
,在surefire在中设置属性之前,Java会更早阅读systemPropertyVariables
。解决方案是使用argLine
以下命令进行更早的设置:
<plugin>
...
<configuration>
<argLine>-Duser.timezone=UTC</argLine>
Java会user.timezone
在 首次
需要时将默认时区考虑在内,然后将其缓存到中java.util.TimeZone
。现在,在读取jar文件时已经发生了这种情况:ZipFile.getZipEntry
现在调用ZipUtils.dosToJavaTime
创建一个Date
实例,该实例初始化默认时区。这不是特定于surefire的问题。有人称它为JDK7中的错误。该程序用于以UTC打印时间,但现在使用系统时区:
import java.util.*;
class TimeZoneTest {
public static void main(String[] args) {
System.setProperty("user.timezone", "UTC");
System.out.println(new Date());
}
}
通常,解决方案是在命令行上指定时区,例如java -Duser.timezone=UTC TimeZoneTest
,或使用编程设置TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
。
完整示例:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
... could specify version, other settings if desired ...
<configuration>
<argLine>-Duser.timezone=UTC</argLine>
</configuration>
</plugin>
</plugins>
</build>
我有个关于Maven的问题。 我有文件名以*Test结尾的单元测试和文件名以*IT结尾的集成测试。 我的理解是,surefire将运行单元测试,故障保险将运行集成测试。 当我运行:mvn清洁安装 同时运行单元测试和集成测试。 当我跑步时: mvn验证 这两个测试也会运行。 我是否可以配置maven,以便在使用:mvn clean install时,只运行单元测试。当我使用mvn验证时,是否只运行集
我正在使用类似的@Input to Angular2@Input to带有get/set的属性。不过,我在弄清楚如何设置单元测试时遇到了一些麻烦。这是我的组件 在我定义组件的每个位置之前都有一个附加的 在我运行这个简单的测试之前 我收到错误 我最初的想法是创建一个模拟顺序常量,并在每个这样的常量之前,将它赋给我的组件... 但是,我不被允许做这个任务 我的下一个假设是,我必须模拟父组件Orders
<代码>list.stream()。 列表中的每个项目都将从数据库中删除。 假设列表中有3个项目,如何进行单元测试: 删除被调用了3次。 删除被称为“按顺序/顺序”,即列表中的元素顺序?
运行单元测试时的例外情况是: 还有一个问题是,这是为了测试SampleRouter,还是只是单元测试process类和任何其他支持类?还是使用以下内容来更改它,以便将消息传递到假的直接队列?
问题内容: 我尝试使用Maven创建一个测试项目,并且单元测试工作正常。但是,当尝试对j2ee项目执行相同操作时,surefire无法找到单元测试。测试位于正确的目录(src / test / java)中,并且正在对其进行编译。 junit测试位于src / test / java / unit / TestAddition.java pom.xml中的surefire插件配置不包含/排除任何文
对于php开发者来说,做单元测试并不是很方便,这也是大部分phper不愿意写单元测试的原因。但是单元测试对提高程序的质量来说,有实在是太重要的了。 有关这一点,我也是在学习java,体验过单元测试的魅力之后才切身体会到的。 那么现在我们就以herosphp为栗子,一起来看看php的单元测试环境如何配置。 首先,毫无疑问,php的单元测试肯定是要依赖phpunit这个工具了。那么我们要先 安装php