问题描述
我正在尝试使用 jsdom 和 Karma 作为测试运行程序将 ClojureScript 测试从“Chrome Headless”迁移到 shadow-cljs。
需要访问 DOM 或浏览器 API 的常规测试工作正常。但是使用 cljs.core.async/go
的异步测试不起作用。基本上,go
中的任何内容都不会被执行。
有没有人知道什么可能是错的?我错过了一些配置吗?是只有 jsdom
问题还是可能是 cljs.core.async
互操作性问题?
我在下面放了一个简单的测试示例
(ns async-tests
(:require [cljs.test :refer [deftest async]]
[cljs.core.async :refer [go <! timeout]]))
(deftest async-go-test
(async done
(.log js/console "Before go is printed")
(go
(.log js/console "After go is never printed")
(<! (timeout 1))
(done))))
我在控制台得到的结果是
LOG: 'Testing async-tests'
LOG: 'Before go is printed'
WebKit 537.36 (undefined 0.0.0): Executed 159 of 185 SUCCESS (0 secs / 0.589 secs)
WebKit 537.36 (undefined 0.0.0) ERROR
disconnected,because no message in 30000 ms.
使用的库版本:
"devDependencies": {
"jsdom": "^16.4.0","karma": "^5.2.3","karma-cljs-test": "^0.1.0","karma-jsdom-launcher": "^8.0.2","shadow-cljs": "2.10.19"
}
业力配置:
module.exports = function (config) {
config.set({
browsers: ['jsdom'],basePath: 'target',files: ['ci.js'],frameworks: ['cljs-test'],colors: true,logLevel: config.LOG_INFO,client: {
args: ["shadow.test.karma.init"]
},jsdomLauncher: {
jsdom: {
resources: "usable",runScripts: "dangerously",pretendToBeVisual: true
}
}
})
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)