如何在多项目中设置sbt configure来运行testng测试

时间:2013-01-23 03:08:21

标签: sbt testng

我有一个sbt多项目设置,项目结构类似于以下

项目家长
    |
    | - 客户
    |
    | - 服务器

父项目是一个虚拟项目。项目/ MyBuild.scala文件是这样的

  import sbt._
  import Keys._
  object MyBuild extends Build {
      lazy val root = Project(id = "parent", base = file(".")) aggregate(server, client)
      lazy val server = Project(id = "server", base = file("server"))
      lazy val client = Project(id = "client", base = file("client")) dependsOn( server )
  }

客户端和服务器是两个独立的项目,具有testng测试设置,它们都是独立工作的。

要运行testng,我使用的是testng接口插件“sbt-testng-plugin”,它需要指定testng测试套件config xml。

在客户端和服务器的build.sbt文件中,我已指定

testNGSuites := Seq(  "src/test/resources/testng.xml")

以便testng可以找到testng.xml来运行测试。

在父项目中,如果我输入

sbt compile

它分别编译所有子项目(客户端和服务器)。这很好用。

但如果我输入,

sbt test

父项目sbt尝试运行testng测试,但由于无法找到文件而失败

 src/test/resources/testng.xml 
在父项目中

。由于父只是一个虚拟目录,并且没有

 src/test/resources/testng.xml 

因此测试失败。

现在我的问题是如何配置设置以允许子项目以及父项目运行测试?

我在想,如果我能以某种方式在子项目中设置类似的设置

 testNGSuites := Seq( base +  "src/test/resources/testng.xml")

所以testNGSuites对于子项目而言绝对是父项目。

但由于我刚开始使用sbt,我不知道如何在sbt中获得“基础”路径。

我尝试使用baseDirectory,但它是一个设置键而不是值本身。

任何帮助都会很感激。

感谢

0 个答案:

没有答案