使用 SBT 运行 JUnit 测试

2024-02-08

我有一个 0.13.7 SBT 项目,有几个子项目。

其中之一叫做webapp,并且它有很多JUnit测试在webapp/src/test/java.

运行时:

sbt webapp/test

只有ScalaTest测试已运行,但没有 JUnit 测试。

我的片段build.sbt file:

libraryDependencies ++= Seq(
    "com.novocode" % "junit-interface" % "0.11" % Test
)

lazy val webapp = project
    settings(
        Seq(
            projectDependencies ++= Seq(
                ....
                "org.scalatest" %% "scalatest" % "2.2.2" % Test,
                "junit" % "junit" % "4.11" % Test,
                "com.novocode" % "junit-interface" % "0.11" % Test
            )
        ): _*
    )

JUnit 测试示例:

import org.junit.Test;

public class CodificadorBase64Test {
    @Test
    public void testPlain() {
        byte b[] = {64, 127, 72, 36, 100, 1, 5, 9, 123};
        assertEquals("QH9IJGQBBQl7", CodificadorBase64.encode(b));
    }
}

UPDATE(更多研究):

> webapp/testFrameworks
[info] List(TestFramework(WrappedArray(org.scalacheck.ScalaCheckFramework)), TestFramework(WrappedArray(org.specs2.runner.Specs2Framework, org.specs2.runner.SpecsFramework)), TestFramework(WrappedArray(org.specs.runner.SpecsFramework)), TestFramework(WrappedArray(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)), TestFramework(WrappedArray(com.novocode.junit.JUnitFramework))

show webapp/loadedTestFrameworks
[info] Map(TestFramework(WrappedArray(
  org.scalatest.tools.Framework, 
  org.scalatest.tools.ScalaTestFramework)
) -> org.scalatest.tools.Framework@65767aeb)

So JUnitSBT 已知支持但未加载。

调试输出:

[debug] Framework implementation 'org.scalacheck.ScalaCheckFramework' not present.
[debug] Framework implementation 'org.scalacheck.ScalaCheckFramework' not present.
[debug] Framework implementation 'org.scalacheck.ScalaCheckFramework' not present.
[debug] Framework implementation 'org.scalacheck.ScalaCheckFramework' not present.
[debug] Framework implementation 'org.specs2.runner.Specs2Framework' not present.
[debug] Framework implementation 'org.specs2.runner.Specs2Framework' not present.
[debug] Framework implementation 'org.specs2.runner.Specs2Framework' not present.
[debug] Framework implementation 'org.specs2.runner.Specs2Framework' not present.
[debug] Framework implementation 'org.specs2.runner.SpecsFramework' not present.
[debug] Framework implementation 'org.specs2.runner.SpecsFramework' not present.
[debug] Framework implementation 'org.specs2.runner.SpecsFramework' not present.
[debug] Framework implementation 'org.specs2.runner.SpecsFramework' not present.
[debug] Framework implementation 'org.specs.runner.SpecsFramework' not present.
[debug] Framework implementation 'org.specs.runner.SpecsFramework' not present.
[debug] Framework implementation 'org.specs.runner.SpecsFramework' not present.
[debug] Framework implementation 'org.specs.runner.SpecsFramework' not present.
[debug] Framework implementation 'com.novocode.junit.JUnitFramework' not present.
[debug] Framework implementation 'com.novocode.junit.JUnitFramework' not present.
[debug] Framework implementation 'com.novocode.junit.JUnitFramework' not present.
[debug] Framework implementation 'com.novocode.junit.JUnitFramework' not present.
[debug] Subclass fingerprints: List((org.scalatest.Suite,false,org.scalatest.tools.Framework$$anon$1@3ad42aff))
[debug] Subclass fingerprints: List((org.scalatest.Suite,false,org.scalatest.tools.Framework$$anon$1@97f54b))
[debug] Annotation fingerprints: List((org.scalatest.WrapWith,false,org.scalatest.tools.Framework$$anon$2@6a589982))
[debug] Annotation fingerprints: List((org.scalatest.WrapWith,false,org.scalatest.tools.Framework$$anon$2@1b95d5e6))
[debug] Subclass fingerprints: List((org.scalatest.Suite,false,org.scalatest.tools.Framework$$anon$1@5c997dac))
[debug] Subclass fingerprints: List((org.scalatest.Suite,false,org.scalatest.tools.Framework$$anon$1@406c43ef))
[debug] Annotation fingerprints: List((org.scalatest.WrapWith,false,org.scalatest.tools.Framework$$anon$2@282ddefc))
[debug] Annotation fingerprints: List((org.scalatest.WrapWith,false,org.scalatest.tools.Framework$$anon$2@4400c80))

与以下人员合作:

  • SBT 0.13.9,以及
  • JUnit 4.x。

相关信息:

  • 为什么 junit 测试不使用“sbt test”执行? https://stackoverflow.com/questions/23974840/why-dont-junit-tests-get-executed-with-sbt-test
  • SBT 文档 http://www.scala-sbt.org/0.13/docs/Testing.html

最后,我发现我必须将以下设置添加到子项目中:

lazy val webapp = project
    settings(
        Seq(
            projectDependencies ++= Seq(
                ....
                "org.scalatest" %% "scalatest" % "2.2.2" % Test,
                "junit" % "junit" % "4.11" % Test,
                crossPaths := false,
                "com.novocode" % "junit-interface" % "0.11" % Test
            )
        ): _*
    )

重要的是要声明junit-interface子项目中的依赖项,此外,设置为 falsecrossPaths环境。

线索已由这个问题 https://github.com/sbt/junit-interface/issues/35.

如果主项目没有JUnit测试,则不需要提供所需的测试设置。

另外,为了了解失败的方法和原因,我们需要这样的设置:

testOptions in Test := Seq(Tests.Argument(TestFrameworks.JUnit, "-a"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SBT 运行 JUnit 测试 的相关文章

随机推荐

  • 在easeljs中添加一个简单的图像

    这是我的 html 代码
  • css 字体大小和行高与基线不匹配

    我正在尝试做一些应该非常简单的事情 但我在失败和论坛之间度过了一天 我想调整我的字体以匹配我的基线 在 indesign 中只需点击一下即可 但在 css 中这看起来是地球上最困难的事情 让我们举一个有理值的简单例子 在这张图片上 我每 2
  • SQL 查询检查名称是否以元音开头和结尾

    我想查询名单CITY表中的名称STATION id city longitude latitude 它们的第一个和最后一个字符都是元音 结果不能包含重复项 为此 我写了一个查询 例如WHERE NAME LIKE a 它有 25 个条件 每
  • Webpack启动,导入错误

    我正在开始使用 Webpack 但已经遇到了以下问题 我创建了一个 app index js 文件 如文档中指定的 我还创建了一个 index html 文件 从文档中复制了 HTML 和 CSS 我在 CLI 中运行了正确的命令 包括生成
  • Artifactory 缺少 Android 依赖项

    相关找不到runtime jar android arch lifecycle runtime 1 0 0 https stackoverflow com questions 50563338 could not find runtime
  • 如何仅选择 BLOB 列的一部分

    在 SQLite 数据库中 如何从 BLOB 字段中仅选择 1kb 我想象它是这样的 SELECT PART field name startIndex bytes AS data FROM table 这可能吗 Use substr ht
  • JTextArea 中 setText() 的机制?

    我尝试在我的中显示一些文字JTextArea在运行时 但是当我使用循环时setText按顺序显示文本 它只显示最后一个循环的文本 这是我的代码 private void jButton1ActionPerformed java awt ev
  • 如何仅选择巨大二进制文件(文件)的一部分?

    我的问题是这样的 我有可能将巨大的文件存储在 SQL Server 2008 上的二进制 图像 字段中 gt 1GB 如果我使用常规 select 语句返回整个二进制文件 则查询需要一分钟多的时间才能将结果返回到我的 NET 程序 并且我的
  • Android 11 (R) 文件路径访问

    根据文档 Android R 中授予文件路径访问权限 从 Android 11 开始 具有 READ EXTERNAL STORAGE 权限的应用可以使用直接文件路径和本机库读取设备的媒体文件 这项新功能使您的应用程序能够更顺畅地与第三方媒
  • 如何制作全宽 SwiftUI 列表?

    我想要我的List为全宽 填充是自动添加的 出于我的目的 我不希望这样 这只是示例代码 这是我的代码 struct ViewModel Identifiable let title String let id UUID struct Con
  • jquery在for循环中延迟

    所以我一直在研究 jquery deferred 但在循环中检索数据时遇到问题 延迟部分似乎只处理最终迭代中的数据 如果数组中只有一项 它也会失败 所以我不确定发生了什么 我有各种城市名称 我试图从谷歌地图反向地理编码中获取每个城市的中心坐
  • ImageView的src和background有什么区别

    我对使用感到困惑src or background for an ImageView 我知道前者的意思是这个的内容ImageView后者指的是背景ImageView 但如何决定使用哪一个呢 我看不出有什么区别 所有视图都可以拍摄背景图像 T
  • 如何展平Nuget包内容文件?

    Nuget 包问题 buildAction copyToOutput flatten 被忽略 包项目 ThisProject vbproj Net 标准库 2 0 nuspec 文件
  • 提取单词周围的单词并将结果插入数据框列中

    我有一个数据框 df 有 3 列 如下所示 company year text Apple 2016 The Company sells its products worldwide through its 我想在以下位置搜索 产品 df
  • 如何通过 REST API 创建 Pod

    如何使用 REST API 创建 Pod 我查看了 Kubernetes API 文档 https kubernetes io docs reference generated kubernetes api v1 10 strong wri
  • 我可以使用 vs2010 开发 .net 4.5 应用程序吗

    我已经安装了 net 4 5 框架http www microsoft com en in download details aspx id 30653 http www microsoft com en in download detai
  • 如何使用 Perl 的 XML::Twig 将子元素添加到 XML?

    我有以下 XML 文件
  • 用C#创建QRCode并保存为图像

    我从 Web 应用程序上的 URL 接收数据 该数据是使用 API 响应动态生成的 我必须把它放在一个QRCode并将这个QRCode发送回前端供我的客户下载 我们使用 C 作为后端 使用 React js 作为前端 我尝试过使用ZXIng
  • 确定印度拉米纸牌是否为获胜牌 - Java

    我正在寻找一种有效的解决方案来确定一手牌是否是印度拉米纸牌中的获胜手牌 印度拉米纸牌在混合方面与金罗米纸牌类似 人们可以融合相同花色的序列 顺子 或融合一组相同的值 序列和集合都应至少包含 3 张牌 与金罗米牌不同 印度拉米牌一手牌由 13
  • 使用 SBT 运行 JUnit 测试

    我有一个 0 13 7 SBT 项目 有几个子项目 其中之一叫做webapp 并且它有很多JUnit测试在webapp src test java 运行时 sbt webapp test 只有ScalaTest测试已运行 但没有 JUnit