在 ClojureScript 中编写 Grafana K6 测试

问题描述 投票:0回答:1

我正在尝试使用 K6 进行用 ClojureScript 编写的测试。 K6 用 Golang 编写,运行捆绑的 JS 运行时,该运行时又运行用 JavaScript 编写的测试。

我运行简单的测试没有问题,该测试仅在使用

(js/console.log "Hello world")
shadow-cljs
目标时执行
:esm
。然而,当我尝试
(:require ["k6" :as k6])
- 与 K6 工具集进行有意义的通信所需的,并且仅在运行时可用 - 编译被拒绝,并出现非常容易理解的错误消息 - “所需的 JS 依赖项“k6”不可用, “k6_test/core.cljs”需要它。”

我尝试使用

shadow.esm/dynamic-import
,但K6无法运行测试,因为
import
未定义:

ERRO[0000] SyntaxError: dist/main.js: Unexpected token (3:47)

> 3 | const shadow_esm_import = function(x) { return import(x) };
    |                                                ^

而且我不知道应该更改什么来定义

import
,或者这只是 K6 JS 运行时的一个属性,我对此无能为力。

是否有其他方法可以告诉 ClojureScript 依赖项仅在运行时可用?

clojurescript k6 shadow-cljs
1个回答
0
投票

您可以在构建配置中设置

:js-options {:keep-as-import #{"k6"}}
。这将使 Shadow-cljs 捆绑除
k6
依赖项之外的所有内容。如果运行时可以在运行时解决该问题,那么它应该可以工作。如果需要,您可以向此集合添加更多依赖项。

如果您不打算使用任何

npm
依赖项,您也可以只设置
:js-options {:js-provider :import}
。这将使 Shadow-cljs 仅发出常规的
import
语句,而不是尝试捆绑任何非 CLJS 依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.