当前位置: 首页 > 知识库问答 >
问题:

在IntelliJ中调试scala sbt集成测试

李联
2023-03-14

我使用IntelliJ的SBT插件,并创建了一个具有以下构建设置的scala项目:build.scala:

lazy val root =
    Project("root", file("."))
      .configs( IntegrationTest )
      .settings( Defaults.itSettings : _*)
<setting some parameters>
libraryDependencies += "org.scalatest" % "scala-test_2.10" % "1.0.8" % "test,it"
Unable to load a Suite class. This could be due to an error in your runpath. Missing class: it.AddPersonSpec
java.lang.ClassNotFoundException: it.AddPersonSpec
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.scalatest.tools.Runner$$anonfun$22.apply(Runner.scala:1962)
    at org.scalatest.tools.Runner$$anonfun$22.apply(Runner.scala:1960)
    at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:264)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.filter(TraversableLike.scala:263)
    at scala.collection.AbstractTraversable.filter(Traversable.scala:105)
    at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1960)
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:850)
    at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:849)
    at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:2221)
    at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:848)
    at org.scalatest.tools.Runner$.run(Runner.scala:706)
    at org.scalatest.tools.Runner.run(Runner.scala)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:144)
    at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:35)

任何想法都是高度赞赏的。

共有1个答案

厉坚
2023-03-14

在IntelliJ中,右键单击项目,转到Open Module Settings,选择Paths选项卡,并将Test output Path.../target/scala-2.11/test-classes更改为.../target/scala-2.11/it-classes。这样,您就可以像正常测试一样调试集成测试。

在调试普通测试之前,必须将其改回。此外,将sbt项目导入IntelliJ将再次擦除该设置。

 类似资料:
  • 背景: 我正在使用相关项目的最新版本: Junit5版本 从我的终端运行时,我的项目生成没有错误。我使用maven failsafe插件以这种方式在本地执行集成测试。 有很多故障保护选项可供记录,其中一些是从父POM继承的,但故障保护的行为与我预期的一样。 问题是: 如果我尝试从Intellij运行所有的集成测试,Intellij似乎会在每个测试类之间调用扩展。这与我从failsafe中看到的不同

  • 英文原文:http://emberjs.com/guides/testing/integration/ 集成测试通常用来测试应用中得重要工作流。集成测试用来模拟用户交互和确认交互结果。 设置 为了对Ember应用进行集成测试,需要在测试框架中运行应用。首先需要将根元素(root element)设置为任意一个已知将存在的元素。如果根元素在测试运行时可见的话,这对测试驱动开发非常有用,带来的帮助非常

  • 我将我的IntelliJ版本从2017.3升级到2018.1,现在我不能再从IDE运行集成测试了。 该项目是一个使用Gradle的Spring Boot应用程序和构建。集成测试基本上如下所示: 仍然可以使用gradle运行测试,但我不能运行与IDE隔离的测试。 我得到这个错误,因为实例不能再自动连线了: 我在2017.1版上工作得很好。我想我必须改变IDEs配置中的一些东西,但我不知道是什么。

  • 我的build.gradle是这样配置的: 下面是一个简单的测试: 当我执行测试时,我在控制台中看到了这一点: 但测试报告中没有任何内容: 我做错了什么?如何将JUnit 5结果集成到测试报告窗口中? 我正在使用Intellij 2016.2

  • 主要内容:集成测试背后的原因,集成测试技术,集成测试方法,集成测试指南集成测试是单元测试后软件测试过程的第二个层次。在此测试中,软件的单元或单个组件在组中进行测试。集成测试级别的重点是在集成组件或单元之间交互时暴露缺陷。 单元测试使用模块进行测试,这些模块在集成测试中进行组合和测试。该软件使用许多软件模块开发,这些软件模块由不同的编码器或程序员编码。集成测试的目标是检查所有模块之间通信的正确性。 集成测试背后的原因 虽然软件应用程序的所有模块已经在单元测试中进行了测

  • 设计 集成测试包括 3 个模块:测试用例、测试环境以及测试引擎。 测试用例 用于定义待测试的 SQL 以及测试结果的断言数据。 每个用例定义一条 SQL,SQL 可定义多种数据库执行类型。 测试环境 用于搭建运行测试用例的数据库和 ShardingSphere-Proxy 环境。 环境又具体分为环境准备方式,数据库类型和场景。 环境准备方式分为 Native 和 Docker,未来还将增加 Emb