gpt4 book ai didi

javascript - 寻找与 Nashorn 的 jjs 解释器一起使用的 javascript 单元测试套件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:30:16 25 4
gpt4 key购买 nike

Nashorn 的 jjs 解释器允许执行许多复杂的任务,例如创建 Web 服务器、数据库操作和 swing/javafx 接口(interface)。这种方法的最大好处是可以进行快速实验,并且能够使用您能想到的任何 Java 库。

我在纯 javascript 模式下使用 Nashorn,即:

  • 我只使用 Nashorn 提供的 jjs 解释器。
  • 我不是从 Java 程序调用 Nashorn 解释器
  • 我没有使用 avatarjs 或 nodejs 等效覆盖

一切顺利。然而,我无法使标准的 javascript 单元测试套件与 Nashorn 的 jjs 一起工作。

我查看了 jasmine、qunit、mocha 和许多其他框架,但没有得到有效结果。我什至尝试让 java junit 与纯 jjs 脚本一起工作。

其中许多都有 js 测试运行器,我发现请求在 Web 客户端上运行,这超出了我的范围。

我希望能够在纯 js 模式而非 java 模式下使用 Nashorn jjs 解释器运行真正的不可知论 javascript 测试套件。

是否有这样的工具,如果有如何与 Nashorn 的 jjs 一起使用?


更新:

根据 Sirko 的回答,我设法用这 2 个代码片段模仿了预期的行为(警告:里面有 Nashorn 的细节)

qunit-nashorn.js:

load("qunit-1.18.0.js");

with(QUnit) {
init();
log(function(d) {
if (!d.result) {
var message = d.name + "\tFAIL" + d.source;
message += " actual: " + d.actual + " <> expected: " + d.expected;
print(message);
}
});
done(function(d) {
print("time:\t",d.runtime,"ms");
print("total:\t",d.total);
print("passed:\t",d.passed);
print("failed:\t",d.failed);
});
}

qunit_poc.js:

load("qunit-nashorn.js");

with(QUnit) {
test("test1", function(a) { a.equal(true,true); });
test("test2", function(a) { a.equal(false,true); });
}

QUnit.load();

使用纯 jjs 运行这些结果如下:

> jjs qunit_poc.js

test2   FAIL    at <anonymous> (qunit_poc.js:5) actual: false <> expected: true
time: 355 ms
total: 2
passed: 1
failed: 1

最佳答案

这是我的一些代码的摘录,我不久前使用它让 QUnit 从测试运行返回自定义输出:

QUnit.init();

// (failed) tests
QUnit.log( function(details) {} );

// module start
QUnit.moduleStart( function( details ){} );

// module summary
QUnit.moduleDone( function( details ){} );

// test begin
QUnit.testStart( function( details ){} );

// test end
QUnit.testDone( function( details ){} );

// finished all testing
QUnit.done( function(){} );

使用这些函数/回调/事件监听器,我设置了 QUnit 测试的自定义输出。实际测试是这样添加的:

// start module
QUnit.module( 'myModuleName' );

// some tests
QUnit.test( 'some test', function( assert ) { } );

// execute
QUnit.load();

这段代码相当陈旧,因此 QUnit 可能提供了一种更简单的方法来执行此操作,但这曾经对我有用。

关于javascript - 寻找与 Nashorn 的 jjs 解释器一起使用的 javascript 单元测试套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31582175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com