小编dbo*_*tin的帖子

在IntelliJ IDEA中使用JUnit RunListener

我正在开发项目,我需要在运行每个JUnit测试之前执行一些操作.使用RunListener可以添加到JUnit核心的问题解决了这个问题.项目程序集是使用Maven完成的,所以我在我的pom文件中有这些行:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
            <configuration>
                <properties>
                    <property>
                        <name>listener</name>
                        <value>cc.redberry.core.GlobalRunListener</value>
                    </property>
                </properties>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

所以,一切都有效:

mvn clean test
Run Code Online (Sandbox Code Playgroud)

但是当使用IntelliJ(使用其内部测试运行器)开始测试时,我们编写的操作RunListener不会被执行,因此无法使用IntelliJ基础结构执行测试.

正如我所看到的,IntelliJ没有从pom文件解析这个配置,所以有没有办法明确告诉IntelliJ添加RunListener到JUnit核心?可能在配置中使用了一些VM选项?

使用漂亮的IntelliJ测试环境而不是读取maven输出要方便得多.

PS我需要执行的操作基本上是静态环境的重置(我的类中的一些静态字段).

java junit intellij-idea maven-surefire-plugin

6
推荐指数
1
解决办法
1551
查看次数

Java Generics与接口继承相结合

我在Java中使用泛型和接口继承有问题.这是一个例子:

public interface Type0 { }

public interface Type1 extends Type0 {
    void method();
}

public interface SomeInterface0<T extends Type0> {
   T get();
}

public interface SomeInterface1<T extends Type1> extends SomeInterface0<T> { }
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用SomeInterface1没有类型参数的类型的字段时,java comiler将SomeInterface1.get()方法结果的类型视为Type0.并且无法编译这样的东西:

...
SomeInterface1 si1;
...
si1.get().method();
Run Code Online (Sandbox Code Playgroud)

那么,为什么SomeInterface1<T extends Type1>有一个默认的vlue T= Type0

java generics inheritance interface

4
推荐指数
1
解决办法
2252
查看次数

是否可以使用静态字典创建有效的 gzip?

我正在尝试使用使用静态/预设字典gzip的 DEFLATE 算法编码的数据创建有效的 gzip 文件(可以使用标准 linux 解压缩) 。

我已经阅读了DEFLATEgzip的规范,看起来这是不可能的。正如我从 DEFLATE 规范中得到的,压缩数据块有两种编码类型:

  • 使用动态字典(滑动窗口)压缩,此类块以FDICT标志设置为 的标头开头0
  • 用静态压缩(预设字典),用FDICT = 1

但我发现没有办法实际将这样的字典写入文件。是否可以在我的字典中添加一些标头,或者以其他方式使 gzip 解压缩用 编码的数据FDICT = 1

PS 我正在尝试使用 Java 的Deflate类来完成它,但对以这种方式压缩的块的实际 gzip 支持感兴趣。

gzip zlib deflate

2
推荐指数
1
解决办法
1301
查看次数