小编Ole*_*ski的帖子

在JUnit中运行所有测试后调用方法

我想在JUnit中为测试运行创建自定义html报告.我遇到的问题是在完成所有测试后释放资源并关闭标签.

我保持一个FileChannel打开以便写入报告.由于每个测试应该是带有行的表,并且有数百个,我不想为每个测试打开和关闭通道.这里出现的问题是测试组织 - 我有嵌套套件,所以testRunFinished不是一个选项(指单套件,不是所有测试,我看到了这个问题).TestWatcher也不会帮助我,因为它仅指单一测试.

使用的工具:maven 3.0.5,ff webdriver,junit 4.11.

我正在考虑两个选项:1)每次测试运行时打开和关闭通道2)覆盖finalize()使其关闭通道

他们似乎都不漂亮......我搜索了很多页面,但似乎没有人遇到过同样的问题.

任何更漂亮的解决方案?

java testing junit surefire maven

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

读取jar依赖中的资源文件

在解释我的问题之前 - 我尝试在已经提出的问题中找到解决方案,但没有一个起作用;)

我正在尝试读取 jar 内的文件,这是另一个项目的依赖项。该文件位于路径下

/src/main/resources/driver
Run Code Online (Sandbox Code Playgroud)

项目打包成jar文件。使用 pom 将资源中的 DRIVER 包含到 jar 中:

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>*</include>
            </includes>
        </resource>
    </resources>
Run Code Online (Sandbox Code Playgroud)

另外,当我解压 jar 时,我可以看到它已添加到 jar 的根目录中。

我需要做的是将这个文件从 jar 内部复制到磁盘上的目录。只要通过 IntelliJ 将项目添加为依赖项目,一切都可以正常工作。当我将其添加为 POM 中的依赖项时,我收到 NullPointerException。

我用来加载此文件的代码如下所示:

String sourceFilePath = this.getClass().getClassLoader().getResource(driverFileName).getPath();
Run Code Online (Sandbox Code Playgroud)

我也尝试了不同的方法:

    String sourceFilePath = this.getClass().getResource("driver").getPath();
    String sourceFilePath = this.getClass().getResource("/driver").getPath();
    String sourceFilePath = this.getClass().getClassLoader().getResource("driver").getPath();
    String sourceFilePath = this.getClass().getClassLoader().getResource("/driver").getPath();
Run Code Online (Sandbox Code Playgroud)

但每次尝试都会以相同的结果结束:调用 getPath() 时出现 NullPointerException。

我需要解决方案,因为作为依赖项附加的项目是 UI 测试的框架。到目前为止,我一直在为每个需要它们的新项目添加驱动程序,但这需要时间,对于想要使用这个框架的人来说变得更加复杂,并且在新版本驱动程序发布时带来很多麻烦。我希望能够简单地为该框架添加 Maven 依赖项,并能够使用该框架内部的驱动程序。这里的问题是我需要设置一个包含该驱动程序路径的系统变量。因此,一旦需要驱动程序,我就会尝试将其(框架内部的代码)复制到外部位置(某个 tmp 目录)。

知道如何解决吗?

java resources dependencies jar maven

3
推荐指数
1
解决办法
5439
查看次数

标签 统计

java ×2

maven ×2

dependencies ×1

jar ×1

junit ×1

resources ×1

surefire ×1

testing ×1