- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 apache cordova 项目设置,我是第一次尝试使用 Karma。我是这样开始这个项目的:
karma start test/karma.conf.js --verbose
但我得到的是:
INFO [karma]: Karma v0.12.36 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
WARN [web-server]: 404: /favicon.ico
INFO [Chrome 43.0.2357 (Windows 8.1 0.0.0)]: Connected on socket 0_IDnS6qvPg4OhGd7oq4 with id 66015767
Chrome 43.0.2357 (Windows 8.1 0.0.0): Executed 0 of 0 ERROR (0.002 secs / 0 secs)
我已经根据 the docs for configuring requirejs for karma 仔细检查了我所做的事情.
karma.conf.js
module.exports = function(config) {
config.set({
basePath: '..',
frameworks: ['jasmine', 'requirejs'],
files: [
{pattern: 'www/lib/ionic/js/*.min.js', included: false},
{pattern: 'www/lib/ionic/js/angular/*.min.js', included: false},
{pattern: 'www/lib/ionic/js/angular-ui/*.min.js', included: false},
{pattern: 'www/js/**/*.js', included: false},
{pattern: 'test/specs/*Spec.js', included: false},
{pattern: 'test/test-app.js', included: true}
],
exclude: [
'www/js/app.js'
],
preprocessors: {
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
test-app.js
var tests = [];
for(var file in window.__karma__.files) {
if(window.__karma__.files.hasOwnProperty(file)) {
if(/Spec\.js$/.test(file)) {
tests.push(file);
}
}
}
requirejs.config({
baseUrl: 'www',
paths: {
'angular': 'lib/ionic/js/angular'
,'angular-ui': 'lib/ionic/js/angular-ui'
},
shim: {
'angular': {exports: 'angular'},
'www/js/controllers': { deps: ['angular']}
},
deps: tests,
callback: window.__karma__.start
})
helloSpec.js
define('helloTests', ['angular'], function() {
describe('UnitTest: Hello', function() {
it('is defined', function() {
expect([1,2,3].length).toEqual(3);
});
});
});
这是生成的debug.html:
<!doctype html>
<html>
<head>
<title>Karma DEBUG RUNNER</title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<script type="text/javascript">
window.__karma__ = {
info: function(info) {
if (info.dump && window.console) window.console.log(info.dump);
},
complete: function() {
if (window.console) window.console.log('Skipped ' + this.skipped + ' tests');
},
store: function() {},
skipped: 0,
result: window.console ? function(result) {
if (result.skipped) {
this.skipped++;
return;
}
var msg = result.success ? 'SUCCESS ' : 'FAILED ';
window.console.log(msg + result.suite.join(' ') + ' ' + result.description);
for (var i = 0; i < result.log.length; i++) {
window.console.error(result.log[i]);
}
} : function() {},
loaded: function() {
this.start();
}
};
window.__karma__.config = {"args":[],"useIframe":true,"captureConsole":true};
// All served files with the latest timestamps
window.__karma__.files = {
'/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/requirejs/require.js': 'f9d7ac1ba78c53a51fd346e3901a5f406f060f44',
'/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/karma-requirejs/lib/adapter.js': 'f2d8d5976c2bbe89ebe046ac51f393f5547bbc3b',
'/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/jasmine-core/lib/jasmine-core/jasmine.js': '578a1e5ff14db21b04e2d6db7fd0eda37042440c',
'/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/karma-jasmine/lib/boot.js': '997181251903c5bcc9659d92edc872a2a4abfa7b',
'/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/karma-jasmine/lib/adapter.js': '0a69ad1fa10cc8be0a12b241227d3b834f82db4f',
'/base/www/lib/ionic/js/ionic-angular.min.js': '44040e6eeb17077cc79b0985118b15bf1420217d',
'/base/www/lib/ionic/js/ionic.bundle.min.js': '4a4bfece5434ae5c4cebab055aaae274f82050d9',
'/base/www/lib/ionic/js/ionic.min.js': '3e42a6e6700ba9982583b6b5da48861d202d8cfe',
'/base/www/lib/ionic/js/angular/angular-animate.min.js': '6df7f913a45a779638fd60cce18eee17268460d2',
'/base/www/lib/ionic/js/angular/angular-resource.min.js': 'eca9d7e3b12d62b9da13216f1d3b39fcd411f860',
'/base/www/lib/ionic/js/angular/angular-sanitize.min.js': 'b8cf1b04b40df803c16edda80c431ec422b63ad8',
'/base/www/lib/ionic/js/angular/angular.min.js': '09028d3553206017f5ced7249be5641baaea2020',
'/base/www/lib/ionic/js/angular-ui/angular-ui-router.min.js': '0973f9c46d3be867276e941e2e6af9c662a92333',
'/base/www/js/controllers/game.js': '4b67bf783d76ae9f67ac5d569e78319be4a85321',
'/base/www/js/controllers/setup.js': 'b466bd52a326d35700517383a6ceb5b25b3ab44c',
'/base/www/js/directives.js': 'fbc832e4aa0c55a597a57cd4474aa9435bc17bf1',
'/base/www/js/services.js': 'df5339fa9aa37d92974fe59c392b8fb53a71497d',
'/base/test/specs/helloSpec.js': 'b8f2b498922be08d7ff36bafd094132b9c75d357',
'/base/test/test-app.js': '432128c0bcd0257679fb9f4f31ff75a1060f64db'
};
</script>
<!-- Dynamically replaced with <script> tags -->
<script type="text/javascript" src="/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/requirejs/require.js"></script>
<script type="text/javascript" src="/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/karma-requirejs/lib/adapter.js"></script>
<script type="text/javascript" src="/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
<script type="text/javascript" src="/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/karma-jasmine/lib/boot.js"></script>
<script type="text/javascript" src="/absolutec:/Users/Mark/AppData/Roaming/npm/node_modules/karma-jasmine/lib/adapter.js"></script>
<script type="text/javascript" src="/base/test/test-app.js"></script>
<script type="text/javascript">
window.__karma__.loaded();
</script>
</body>
</html>
我假设所提供的文档列表是由 requirejs 拉入的所有内容,而脚本标签是由 karma 添加的内容。
控制台输出为:
Skipped 0 tests
所以看起来它只是没有看到测试定义。但是当我单步调试并在 requirejs.config 处设置断点时,我可以看到“tests”数组包含我的测试文件:
/base/test/specs/helloSpec.js
我还可以通过查看 Chrome 的网络面板来看到它已加载。其中列出:
debug.html
boot.js
jasmine.js
adapter.js
require.js
test-app.js
adapter.js
helloSpec.js
最佳答案
早些时候我收到了错误:
Mismatched anonymous define() module: ...
所以我改变了定义函数调用
define(['angular'], function(angular) {
....
});
至
define('helloTests', ['angular'], function(angular) {
....
});
这消除了错误详细信息,但没有修复任何问题。事实证明它也没有帮助,因为我再也看不到错误消息的变化。发布后,我一时兴起尝试将其删除,因为我看不到它在其他地方使用。然后错误信息变为:
Chrome 43.0.2357 (Windows 8.1 0.0.0) ERROR: 'There is no timestamp for www/lib/ionic/js/angular.js!'
WARN [web-server]: 404: /www/lib/ionic/js/angular.js
Chrome 43.0.2357 (Windows 8.1 0.0.0) ERROR
Uncaught Error: Script error for: angular
http://requirejs.org/docs/errors.html#scripterror
at c:/Users/Mark/AppData/Roaming/npm/node_modules/requirejs/require.js:141
由于我使用了 min 文件(通过在文件模式中包含“*.min.js”更容易过滤掉调试版本),我更改了 requirejs.config 路径并附加了“.min”,如下所示:
requirejs.config({
baseUrl: 'www',
paths: {
'angular': 'lib/ionic/js/angular/angular.min'
,'angular-ui': 'lib/ionic/js/angular-ui/angular-ui.min'
},
...
})
此时,错误消息仅更改为 angular.min.js 没有时间戳。此时我注意到路径是相对的并以“base/wwww”开头。就在那时,我终于注意到了我错过的一些东西in the docs 。所以我更改了 requirejs.config 中的“baseUrl”参数以添加“base/”:
requirejs.config({
baseUrl: 'base/www',
...
})
现在错误消失了,测试正在运行:
Chrome 43.0.2357 (Windows 8.1 0.0.0): Executed 1 of 1 SUCCESS (0.015 secs / 0 secs)
编辑:还有一件事,测试开始运行,但我没有注意到我仍然收到“没有时间戳”消息。将我的 requirejs.config baseUrl 参数从相对更改为绝对(在开头添加“/”)修复了它。
requirejs.config({
baseUrl: '/base/www',
...
})
现在我已经启动并运行了。
关于cordova - 在 Cordova 项目上运行 Karma 时执行 0 of 0 ERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30666682/
我使用plugman命令在cordova中创建了一个插件 它创建了所有必需的文件。然后我在插件中添加了android平台。 然后我尝试将它添加到 cordova 应用程序中。我成功添加了它,但是当我尝
我使用plugman命令在cordova中创建了一个插件 它创建了所有必需的文件。然后我在插件中添加了android平台。 然后我尝试将它添加到 cordova 应用程序中。我成功添加了它,但是当我尝
我正在尝试在较旧的 Atrix 上安装一个应用程序,在 S3 上运行良好。搜索论坛可能的问题是SDK版本较高(Atrix是4.0.4)。修复显然是在设置 API 级别。 但是当我运行 cordova
使用 cordova build在一个为期一年的项目中提出: :processDebugResources my_project/platforms/android/build/intermediat
我有一个可以创建文件的可运行应用程序。 我正在寻找一种工作后数小时从cordova应用程序中删除文件的方法。我似乎无法使其正常工作。 这是用于创建和删除文件的代码: function crea
有什么区别吗Cordova 构建 Android 和 Cordova 准备 Android 命令? Reference is added here 最佳答案 准备将您的 www Assets 和任何插
我检查了文档,但没有找到关于此命令的明确说明。 那么,有谁知道cordova prepare命令的作用是什么? 是否更新特定于平台的www文件夹? 如果是,它将复制根www的全部内容吗? 它会更新平台
我们正在开发正在使用Cordova(专用于Ionic)的移动应用程序,并且正在使用PhoneGap PushPlugin和Amazon SNS进行推送通知。反过来,这会撞到我们与Amazon SNS进
我正在使用Vue,Webpack和Cordova。 Videos 如果我在没有Cordova的情况下加载页面,并且在Firefox浏览器中,则可以使用Youtube视频上的全屏图
因此,我尝试在我的(正在运行的)Ionic应用程序中安装一个新插件,该文件名为https://ionicframework.com/docs/native/firebase-dynamic-links
我像这样安装了cordova: C:\Windows\system32>npm install -g cordova 我明白了: C:\Users\cyril\AppData\Roaming\npm\
我有一个 cordova 应用程序,我使用以下代码捕获了后退按钮: document.addEventListener("backbutton", function (e) { bac
如何在 Cordova 中的蓝牙设备和 Android/iOS 之间发送和接收一系列数据字节? 我的项目的详细信息: 我正在开发一个蓝牙传感器设备。设备以一系列字节的形式发送数据。它还对设备 API
我是 cordova 开发的新手。我使用 Onsen UI (1.2.1) 作为布局框架。ons-toolbar 上的标题有问题。 someTextHere 如果我在 ripple 上运行
我有一个启用了平台浏览器的 Cordova 应用程序。我想在 Chrome 中使用摄像头,但调用摄像头根本没有任何反馈。它在我的 Android 设备上就像一个魅力。 我通过这个命令启动:cordov
我对thid docs https://firebase.google.com/docs/android/setup#available_libraries中提到的根级和应用程序级的路径目录感到困惑
喜欢这些插件 https://github.com/ArchieGoodwin/SilentShot https://github.com/alongubkin/phonertc 他们没有 tarba
我有一个 Angular 2 应用程序,我正在将其构建到 cordova 中并部署到 Android/IOS。我没有使用 ionic,我见过许多使用 ionic 的解决方案,但我现在无法将整个项目转换
当我发出命令时,在带有 Cordova 的 Ionic 3 中: ionic cordova run android --emulate 它给出以下消息: BUILD FAILED in 3s
我无法在 ionic 5.2.4v 中安装软件包 cordova-res 并收到以下错误。 命令:cordova-res C:\hanu\cordova-res-master\cordova-res
我是一名优秀的程序员,十分优秀!