使用 ScalaTest 和 SBT android-sdk-plugin

Posted

技术标签:

【中文标题】使用 ScalaTest 和 SBT android-sdk-plugin【英文标题】:Using ScalaTest with SBT android-sdk-plugin 【发布时间】:2014-05-02 19:38:01 【问题描述】:

我正在尝试将 SBT 与 android-sdk-plugin 和 ScalaTest 一起使用,但没有成功。

我可以在 SBT 控制台中运行 test 命令,但它在我的 src/test/scala 文件夹中没有找到任何 ScalaTest 测试套件。

我从 SBT 得到以下输出,它似乎根本没有运行任何 ScalaTest 测试套件。

[info] Compiling 2 Scala sources and 3 Java sources to /home/brianhsu/AndroidProject/FindLost/target/android-bin/classes...
[info] Packaging /home/brianhsu/AndroidProject/FindLost/target/android-bin/classes.jar ...
[info] Done packaging.
[info] Packaging /home/brianhsu/AndroidProject/FindLost/target/scala-2.10/findlost_2.10-0.1-SNAPSHOT-tests.jar ...
[info] Done packaging.
[info] Run completed in 44 milliseconds.
[info] Total number of tests run: 0
[info] Suites: completed 0, aborted 0
[info] Tests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0
[info] No tests were executed.
[info] No tests to run for test:test

以下是我创建项目的方式:

    使用android create project -g创建一个带有gradle布局的Android项目。

    addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.2.11") 添加到project/plugins.sbt 以将android-sdk-plugin 包含到我的项目中。

    将 ScalaTest 添加到我在 build.sbt 中的 libraryDependencies 设置中,这使得构建文件如下所示:

    import android.Keys._
    
    android.Plugin.androidBuild
    
    name := "FindLost"
    
    scalaVersion := "2.10.4"
    
    organization := "org.bone.findlost"
    
    libraryDependencies += "org.scalatest" % "scalatest_2.10" % "2.1.0" % "test"
    
    platformTarget in Android := "android-19"
    
    run <<= run in Android
    
    install <<= install in Android
    

    src/test/scala 添加一个ScalaTest 测试用例,其中包含来自ScalaTest 的QuickStart 页面的示例测试套件。

【问题讨论】:

【参考方案1】:

将您的测试放在src/androidTest/scala

android-sdk-plugin 使用 androidTest 进行 Android 仪器测试和常规测试。

有关此主题的讨论,请参阅 Ordinary scalatests not found from src/test #45。请注意,自那次讨论以来,插件更改的目录已更改为我列出的路径。

【讨论】:

为什么它没有记录在任何地方,但在这里,您应该在使用 android-sdk-plugin 时将测试放在 androidTest 文件夹下!?

以上是关于使用 ScalaTest 和 SBT android-sdk-plugin的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 scalatest 运行 sbt 测试?我有一个错误:对象 scalatest 不是包 org 的成员

使用scalatest,sbt目录结构时出错

如何使用 SBT Jenkins 插件运行特定测试以进行 ScalaTest 测试

使用 ScalaTest 时从 SBT 中排除特别标记的测试

sbt->compile 后未找到 org.scalacheck 和 org.scalatest

Sbt 无法解析 Intellij IDEA 上的 Scalatest