【问题标题】:SBT run single test class in submoduleSBT 在子模块中运行单个测试类
【发布时间】:2019-07-17 21:50:11
【问题描述】:

我有一个包含 moduleA、moduleB 和 moduleC 的多模块项目。我想从 moduleB 运行我的类 com.helpme.run.MyTest。

我的猜测是 sbt 命令应该是这样的:

sbt "project moduleA" --mainClass com.helpme.run.MyTest 测试

但没有运气。请帮忙!!谢谢!

【问题讨论】:

  • 将您的课程作为主课程运行还是作为测试运行?

标签: scala sbt scalatest


【解决方案1】:

首先你可以使用testOnly运行一个测试

$ sbt testOnly MyTest

但是如果你的项目是一个多项目sbt项目,并且你在多个项目中有同名的相同测试类,你可以通过project命令navigate between projects然后运行测试

$ sbt
> project moduleA
> testOnly MyTest

请注意,您必须先运行 sbt,然后从 sbt shell 运行其余命令。

【讨论】:

  • 强烈推荐阅读sbt docs,尤其是Testing part
  • 如何从命令行中选择一个项目。在 Maven 中是 -pl
  • 我在回答中提到了这一点:project moduleA 命令会将您切换到moduleA 项目。
  • “项目 myproject”。是的,我确实尝试过,它确实有效。我没有意识到可以通过用分号分隔命令行上的 sbt 控制台命令。 V 酷。
【解决方案2】:

取决于您的项目配置testOnly 无法工作

你也可以试试这个命令:

sbt "project myProject" "testOnly com.this.is.my.Test"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-15
    • 2019-06-30
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    相关资源
    最近更新 更多