Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ScalaJS Bundler运行测试时遇到ReferenceError_Scala_Scala.js_Scalajs Bundler - Fatal编程技术网

使用ScalaJS Bundler运行测试时遇到ReferenceError

使用ScalaJS Bundler运行测试时遇到ReferenceError,scala,scala.js,scalajs-bundler,Scala,Scala.js,Scalajs Bundler,从sbt scalajs0.6.x升级到1.2.0时,我遇到了这个问题,问题是:- 通过sbt scalajs v0.6.26(和sbt scalajs bundler v0.14.0),我启用了对测试的jsdom支持: requireJsDomEnv in Test := true 测试套件运行良好 但是通过sbt-scalajs v1.2.0(和sbt-scalajs bundler v0.18.0),我也启用了对测试的jsdom支持: requireJsDomEnv in Test :=

sbt scalajs
0.6.x升级到1.2.0时,我遇到了这个问题,问题是:-

通过
sbt scalajs v0.6.26
(和
sbt scalajs bundler v0.14.0
),我启用了对测试的
jsdom
支持:

requireJsDomEnv in Test := true
测试套件运行良好

但是通过
sbt-scalajs v1.2.0
(和
sbt-scalajs bundler v0.18.0
),我也启用了对测试的
jsdom
支持:

requireJsDomEnv in Test := true
但这给了我以下错误:

[info] Writing and bundling the test loader
webpack:///./node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js?:21
exports._globalThis = typeof globalThis === 'object' ? globalThis : window;
                                                                    ^
ReferenceError: window is not defined
    at eval (webpack:///./node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js?:21:69)
    at Object../node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js
但是,当我删除Test:=true中的
requireJsDomEnv设置时,测试套件运行良好。我需要了解为什么会发生这种情况?我怎样才能修好它

我正在使用:

scala -> 2.13.3
Java -> OpenJDK 14.0.2

从代码上看,您似乎正在将节点js env与JSDom一起使用

因此,要启用构建,您必须使用JSDOMNodeJSEnv()例如:-

requireJsDomEnv in Test := true
jsEnv in Test := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()

这里是文档,了解更多信息:-

您是否可以一次升级一件东西,而不是在sbt scalajs和sbt scalajs bundler中进行相对较大的升级,以隔离问题?从(0.6.26,0.14.0)开始,我建议以下升级路径:(0.6.26,0.14.0)->(0.6.33,0.14.0)->(0.6.33,0.18.0)->(1.2.0,0.18.0),在每个独立升级之间运行测试。