gpt4 book ai didi

karma-runner - Karma - 包含 html 文件时出现意外标记

转载 作者:行者123 更新时间:2023-12-03 04:07:05 24 4
gpt4 key购买 nike

我试图在我的 karma 配置文件中包含一个简单的 html 文件,以访问我的 javascript 文件中的 html 元素,并在 karma 中使用 jasmine 进行测试。

但我总是收到意外 token 错误。我在网络广播中看到可以包含 html 文件,但我不知道为什么它不适用于我的配置?

提前致谢

最佳答案

通过 karma 配置,您必须注册要在测试中使用的每个文件。您可以通过将模式添加到 files 来做到这一点您的配置中的数组。

文件模式如下所示:

files: [
{
pattern: 'test/unit/*.js',
watched: true, //watching file modifications for test autorun
included: true, //included as <script src="..."> in the runner html file
served: true //used by tests (the test server should serve it)
}
]

您可以使用短模式语法:

files: [
'test/unit/*.js'
]

这意味着与之前的模式完全相同。

如果您不想在测试中使用包含为 <script src="file.js"></script> 的文件,那么你可以使用included: false并通过 AJAX 从测试中加载文件。请注意,您应该为此使用相对网址,因为测试服务器的域总是可以更改...

模式顺序也很重要,它使用反向覆盖:

files: [
{pattern: '*.js', included: true}
{pattern: '*.js', included: false}
]

在这种情况下,每个 js 文件都会被包含在内,因此第一个模式会覆盖第二个模式。

例如通过 html 文件:

karma 配置:

files: [
{pattern: 'bootstrap.js', included: true}
{pattern: 'x.html', included: false}
]

bootstrap.js:

var xhr = new XMLHttpRequest();
xhr.open('get', '/base/x.html', false);
xhr.send();
console.log(xhr.status, xhr.responseText); //200, '<html content>'

URI 始终具有 /base前缀,因为 Karma 存储自己的 index.html和 js 文件位于顶层,因此它需要一个子文件夹。如果您想了解提供哪些 URI,可以使用以下代码:

var servedUris = Object.keys(window.__karma__.files);

我写了一些基本的fs支持 Yadda 同步读取的内容:https://github.com/acuminous/yadda/blob/master/lib/shims/karma-fs.js您也许可以将其移动到不同的项目扩展它,并使用 fs而不是浏览器中的 AJAX。至少我会用 Browserify 来做到这一点。

关于karma-runner - Karma - 包含 html 文件时出现意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17586074/

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