可以从javascript上下文测试wasm包生成的webassembly吗?

可以从javascript上下文测试wasm包生成的webassembly吗?,javascript,rust,automated-tests,wasm-pack,Javascript,Rust,Automated Tests,Wasm Pack,我有一个rust+wasm项目,如下所示: wasm-pack-example/ pkg/ .gitignore package.json wasm_pack_example.d.ts wasm_pack_example.js wasm_pack_example_bg.d.ts wasm_pack_example_bg.js wasm_pack_example_bg.wasm src/ lib.rs Cargo.toml

我有一个rust+wasm项目,如下所示:

wasm-pack-example/
  pkg/
    .gitignore
    package.json
    wasm_pack_example.d.ts
    wasm_pack_example.js
    wasm_pack_example_bg.d.ts
    wasm_pack_example_bg.js
    wasm_pack_example_bg.wasm
  src/
    lib.rs
  Cargo.toml
运行
wasmpackbuild
时生成
pkg
的内容

发出的js文件不是公共函数的简单传递-wasm包为它们添加了一些逻辑。它看起来更像是公共函数上的内存管理包装器

在我的项目中,此时我真正想做的是针对发出的wasm的js接口编写自动化测试。这就是我的应用程序所做的,也是我需要测试的。我很乐意使用任何测试框架(我已经用jest做了很多这样的实验)

我已经尝试了许多指南和工具来实现这一点,包括,这是有希望的,但缺乏测试wasm pack生成的特定js接口的能力。而且,它似乎缺少我的特定库所需要的东西,可能是以我使用wasm_bindgen的特定方式。当根据rs jest实例化WebAssembly时,我会看到
TypeError:WebAssembly.instantiate():Imports参数必须存在并且必须是一个对象
,如果我向实例化传递了一个空对象,我会看到
TypeError:WebAssembly.instantiate():Import#0 module=“\uuuuuwbindGen\uPlaceholder\uuuuu”错误:模块不是对象或函数

我还尝试了一段时间来模拟浏览器使用JsDom获取和实例化wasm的特定方式。我生成了一个index.html文件,该文件通过一个脚本标记加载了wasm pack js文件,然后使用该index.html文件创建了一个JsDom实例。它正确地尝试从js中的导入获取wasm(这要求我将自己的
fetch
实现添加到JsDom实例的窗口中,从文件系统返回wasm文件),但由于
module.require
不是一个函数,因此在js文件的中途被阻塞。在那之后,我无法取得任何进展

无论如何,这只是为了表明我还没有找到任何解决办法。有没有人能够针对wasm pack生成的js接口编写自动化测试