Javascript Karma-我可以使用脚本标记而不是Karma.config.files吗?
Karma提供了一个名为Javascript Karma-我可以使用脚本标记而不是Karma.config.files吗?,javascript,tdd,karma-runner,karma-jasmine,Javascript,Tdd,Karma Runner,Karma Jasmine,Karma提供了一个名为customContextFile的配置选项,允许用户指定Karma将提供的HTML文件 我的问题是-我可以直接将标记添加到自定义上下文文件中吗?或者我必须使用karma配置中的文件属性在浏览器中加载文件吗? 更多信息 我想把脚本标记直接放在我的customContextFile上,使它看起来类似于index.html,列出了所有供应商文件,等等 然而,karma在清单404中列出了我添加到自定义上下文文件中的脚本标记。我怀疑这是因为我没有在karma配置的files属
customContextFile
的配置选项,允许用户指定Karma将提供的HTML文件
我的问题是-我可以直接将
标记添加到自定义上下文文件中吗?或者我必须使用karma配置中的文件属性在浏览器中加载文件吗?
更多信息
我想把脚本标记直接放在我的customContextFile上,使它看起来类似于index.html,列出了所有供应商文件,等等
然而,karma在清单404中列出了我添加到自定义上下文文件中的脚本标记。我怀疑这是因为我没有在karma配置的files属性中列出这些文件。或者我的路径在脚本标记中是错误的
目录结构
.
|--app
| |--mock
| | |--*.json
| |--scripts
| | |--*.ts
| |--vendor
| | |--*.js
|
|--config
| |--karma.conf.js
|
|--dist
| |--mock
| | |--*.json
| |--scripts
| | |--*.js
| |--tests
| | |--*.js
| |--vendor
| | |--*.js
| |--specRunner.html
|
config/karma.conf.js
config.set({
basePath: '../dist',
frameworks: ['jasmine'],
reporters: ['dots'],
port: 9876,
colors: false,
logLevel: config.LOG_DEBUG,
browserNoActivityTimeout: 100000,
plugins: [
'karma-chrome-launcher',
'karma-jasmine'
],
customContextFile: 'specRunner.html',
files: [
{pattern: 'vendor/**/*.js', included: false, watched: false},
{pattern: 'mock/**/*.json', included: false, watched: false},
{pattern: 'scripts/**/*.js', included: false},
{pattern: 'tests/**/*.js', included: false}
]
...
dist/specRunner.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Spec Runner</title>
</head>
<body>
<h1>Thank you for reading this far</h1>
<h2>Karma 404s with each of these</h2>
<script src="jQuery/jquery-1.7.min.js"></script>
<script src="vendor/jQuery/jquery-1.7.min.js"></script>
<script src="dist/vendor/jQuery/jquery-1.7.min.js"></script>
...etc...
<script src="scripts/app.js"></script>
<script src="scripts/x.module.js"></script>
<script src="scripts/y.module.js"></script>
<script src="scripts/z.module.js"></script>
...etc...
</body>
</html>
规格跑步者
谢谢你读到这里
业力404与每一个都有联系
等
等
Karma配置中的文件
选项执行多个作业。它的工作之一是告诉Karma要创建的脚本元素。然而,它的另一项工作是告诉业力该服务什么剧本。您不能只是手动将script
元素放入HTML并调用它。您需要配置Karma,以便提供文件,因为如果文件未列出,Karma将不会提供文件
您可以在配置中使用类似的模式,告知Karma为文件提供服务,但不将其作为页面上的脚本元素包含(包含:false
):
files: [
{ pattern: "vendor/**/*.js", included: false },
{ pattern: "scripts/**/*.js", included: false },
// ...
]
也可以在浏览器端的/base
下提供所有服务。因此,文件scripts/app.js
将作为/base/scripts/app.js
使用,后一个路径是您必须在script
中使用的路径,或者在您引用该文件时使用的路径
如果您对Karma看到的是什么以及它是如何服务于它感到困惑,您可以在浏览器中进入调试模式并检查变量\uuuuuuu Karma\uuuu.files
。这是Karma能够服务的文件名地图:键是文件名,每个键的值是文件内容的校验和。包含:false,服务:true
有意义。谢谢但是您知道脚本标记的正确路径吗?Karma在HTML中找不到我请求的脚本。