从JAR依赖项运行测试

时间:2017-12-13 10:49:01

标签: java gradle junit

我正在使用我的测试代码创建一个JAR,并计划从另一个项目运行测试。

以下是我正在尝试实施的方法。

项目B:

configurations { testApi }
task testJar ....
artifacts { testApi testJar }

项目A:

dependencies {
    testRuntime "xx.xxx.xxx.projectName", configuration: "integtest";
}

测试似乎没有运行这种方法。什么可能是问题的任何想法?有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

Gradle仅查找通过相应testClassesDirs类型任务的Test属性配置的目录中的测试类,其中java插件project.sourceSets.test.output.classesDirstest configurations { externalTests } dependencies { externalTests "xx.xxx.xxx.projectName", configuration: "integtest" testRuntime "xx.xxx.xxx.projectName", configuration: "integtest" } test { // if only one dependency in externalTests you can use the simpler, it will fail if there are multiple dependencies testClassesDirs += zipTree(configurations.externalTests.singleFile) // if multiple dependencies in externalTests you need to use testClassesDirs += configurations.externalTests.files.collect { zipTree it }.sum() } 1}}任务。不支持从依赖项中的JAR文件运行测试。

您需要提取JAR文件并将解压缩的目录添加到此属性中。我认为类似下面的结构应该可行,但我没有测试它:

df = read.table(text = "
Id Question1
1     5
1     3
2     3
3     5
4     1
", header=T)

library(dplyr)
library(tidyverse)

df %>%
  group_by(Id) %>%
  mutate(row = paste0("Question1.v", row_number())) %>%
  ungroup() %>%
  spread(row, Question1)

# # A tibble: 4 x 3
#      Id Question1.v1 Question1.v2
# * <int>        <int>        <int>
# 1     1            5            3
# 2     2            3           NA
# 3     3            5           NA
# 4     4            1           NA