对于想了解angularjs–找不到插件“karma-jasmine”的读者,本文将是一篇不可错过的文章,我们将详细介绍angular插件库,并且为您提供关于AngulaJs自动化测试之Karma和J
对于想了解angularjs – 找不到插件“karma-jasmine”的读者,本文将是一篇不可错过的文章,我们将详细介绍angular插件库,并且为您提供关于AngulaJs自动化测试之Karma和Jasmine、Angular 6.0和Karma Jasmine – 测试结束后浏览器关闭、Angular w / Jasmine和Karma测试了模拟服务、Angular 使用 Jasmine 和 Karma 获取 - 不完整:未找到规格的有价值信息。
本文目录一览:- angularjs – 找不到插件“karma-jasmine”(angular插件库)
- AngulaJs自动化测试之Karma和Jasmine
- Angular 6.0和Karma Jasmine – 测试结束后浏览器关闭
- Angular w / Jasmine和Karma测试了模拟服务
- Angular 使用 Jasmine 和 Karma 获取 - 不完整:未找到规格
angularjs – 找不到插件“karma-jasmine”(angular插件库)
31 12 2015 09:59:40.923:WARN [plugin]: Cannot find plugin "karma-jasmine". Did you forget to install it ? npm install karma-jasmine --save-dev 31 12 2015 09:59:40.934:WARN [plugin]: Cannot find plugin "karma-phantomjs-launcher". Did you forget to install it ? npm install karma-phantomjs-launcher --save-dev /home/ubuntu/.nvm/versions/node/v4.2.1/lib/node_modules/karma/node_modules/di/lib/injector.js:9 throw error('No provider for "' + name + '"!'); ^ Error: No provider for "framework:jasmine"! (Resolving: framework:jasmine)
很明显它抱怨,因为它没有业力 – 茉莉
我运行这个命令
sudo npm install karma-jasmine --save-dev
确保它已安装,作为回应,它给了我这条消息
npm WARN package.json taksi_client@1.0.0 No description npm WARN package.json taksi_client@1.0.0 No repository field. npm WARN package.json taksi_client@1.0.0 No README data karma-jasmine@0.3.6 node_modules/karma-jasmine.
我的意思是,在我看来,已经安装了karma-jasmin.
然后我试了
sudo npm install karma-phantomjs-launcher --save-dev
问题是,我希望在这两个命令之后,我可以运行业力开始
但又抱怨说,找不到插件“karma-jasmin”
更新:
我在package.json中有这个:
"devDependencies": { "karma": "^0.13.15","karma-chrome-launcher": "^0.2.2","karma-jasmine": "^0.3.6","karma-phantomjs-launcher": "^0.2.2" }
解决方法
npm install -g karma-cli
AngulaJs自动化测试之Karma和Jasmine
一、入门简介
Karma和Jasmine的基本了解,参考另外一篇文章Angularjs官方示例项目之单元测试套件karma-jasmine
二、Karma配置
TBD
三、Jasmine
Jasmine的官方文档参考:Jasmine Behavior-Driven JavaScript Documentation 上面有很一个很详细的测试示例。
套件细则spec
Jasmine的核心套件是describe()函数,它是一个全局函数,可以在测试时被全局调用。
describe(specName, function(){})函数有两个参数,分别是细则spec套件的名字和测试套件的函数。describe()是可以嵌套的,也就是说可以在一个describe()的第二个参数函数中,再定义个describe()。
通过调用it()全局函数来在describe()中定义一个细则spec。
describe(''A spec suite'', functoin(){
it(''constains a equal spec'', {
expect(true).toBe(ture);
});
});
一个describe()中可以有多个细则spec,同时,一个spec细则中也可以有多个预期expect断言项。但是,只有一个细则中所以的断言项目都通过,才算是通过一个细则spec。
设置函数beforeEach和afterEach
beforeEach(functon) 传入的参数是一个函数,该函数会在每个细则describe运行之前被调用。
同理,afterEach(function)则是在每个细则describe运作之后被调用。
预期与匹配器(断言库)
测试时,我们是想要知道某个断言条件下应用是符合我们的预期expect的。比如:“如果我们点击了这个按钮,我们会期望有什么结果。”在jasmine中,使用expect(needTestedValue)函数来创建这个预期,其参数表示我们真实的需要被测试的值。
相应的,有需要测试的值,就有我们期待的值。这个期待值就保存在匹配器macher,比如内置的toBe(expectedValue)中。
最后的语法类似与
expect(needTestedValue).macher(expectValue)
一个代码示例如下:
describe(''A spec suite'', functoin(){
it(''constains a equal spec'', {
expect(true).toBe(ture);
});
// you can use ''not''
it(''constains a not equal spec'', {
expect(true).not.toBe(false);
});
});
内置的匹配器有:
//比较x和y是否值相等,相当于==
expect(x).toEqual(y);
//比较x和y是否不相等
expect(x).not.toEqual(y);
//比较x和y是否是相同的对象,相当于JavaScript中的"==="
expect(x).toBe(y);
//比较x是否匹配pattern正则
expect(x).toMatch(pattern);
//x是否为undefined
expect(x).toBeDefined();
//x是否为null
expect(x).toBeNull();
//x是否为true
expect(x).toBeTruthy();
//x是否为false
expect(x).toBeFalsy();
//y是在数组x中(x可以是字符串或数组)
expect(x).toContain(y);
//x是否比y小
expect(x).toBeLessThan(y);
//x是否比y大
expect(x).toBeGreaterThan(y);
//x是否在一个指定的浮点精度内与y相近
expect(x).toBeCloseTo(y);
//函数是否抛出异常
expect(fn).toThrow(e);
自定义匹配器
自定义方法是在Jasmine块中调用addMachers()函数
describe(''A spec suite'', functoin(){
tihs.addMachers({
customerMacher: function(expected) {
// customer rule
return this.actual <= expected;
}
});
});
这样就可以在测试套件中使用自定义的 customerMacher 匹配器了。
Angular 6.0和Karma Jasmine – 测试结束后浏览器关闭
我试过玩配置,没有成功.我很确定没有任何东西覆盖配置,我知道使用了这种配置(例如在修改浏览器阵列后,我现在有多个浏览器启动).
我通过运行’ng test’命令执行测试.试图执行’业力开始’似乎不起作用 – 不确定这是否相关.
这是karma.conf.js:
module.exports = function (config) { config.set({ basePath: '',frameworks: ['jasmine','@angular-devkit/build-angular'],plugins: [ require('karma-jasmine'),require('karma-chrome-launcher'),require('karma-edge-launcher'),require('karma-firefox-launcher'),require('karma-jasmine-html-reporter'),require('karma-coverage-istanbul-reporter'),require('@angular-devkit/build-angular/plugins/karma') ],client: { clearContext: false // leave Jasmine Spec Runner output visible in browser },coverageIstanbulReporter: { dir: require('path').join(__dirname,'../coverage'),reports: ['html','lcovonly'],fixWebpackSourcePaths: true },reporters: ['progress','kjhtml'],port: 9876,colors: true,logLevel: config.LOG_INFO,autoWatch: true,browsers: ['Chrome','Firefox','Edge'],singleRun: false }); };
“singleRun”似乎与autoWatch无关.
解决方法
解决方法是ng测试 – 手表. Hat tip Ryan McCormick
Angular w / Jasmine和Karma测试了模拟服务
您可以注入它并创建间谍来模拟您要模拟/测试的内容:
const aboutService = TestBed.inject(AboutService);
const spy = spyOn(aboutService,'getSkills').and.returnValue(of({...});
...
expect(spy).toHaveBeenCalled();
Angular 使用 Jasmine 和 Karma 获取 - 不完整:未找到规格
files
和 include
条目对我来说很陌生。
尝试删除它们:
module.exports = function (config) {
config.set({
basePath: "",frameworks: ["jasmine","@angular-devkit/build-angular"],plugins: [
require("karma-jasmine"),require("karma-chrome-launcher"),require("karma-jasmine-html-reporter"),require("karma-coverage-istanbul-reporter"),require("@angular-devkit/build-angular/plugins/karma"),],client: {
clearContext: false,// leave Jasmine Spec Runner output visible in browser
},coverageIstanbulReporter: {
reports: ["html","lcovonly"],fixWebpackSourcePaths: true,},// files: ["src/**/*.spec.js"],// include: ["src/**/*.spec.js"],angularCli: {
environment: "dev",reporters: ["progress","kjhtml"],port: 9876,colors: true,logLevel: config.LOG_INFO,autoWatch: true,browsers: ["Chrome"],singleRun: false,});
};
尝试创建一个与您的 Angular 版本相同的新 CLI 项目,并将 karma.conf.js
与您的进行比较。
今天关于angularjs – 找不到插件“karma-jasmine”和angular插件库的分享就到这里,希望大家有所收获,若想了解更多关于AngulaJs自动化测试之Karma和Jasmine、Angular 6.0和Karma Jasmine – 测试结束后浏览器关闭、Angular w / Jasmine和Karma测试了模拟服务、Angular 使用 Jasmine 和 Karma 获取 - 不完整:未找到规格等相关知识,可以在本站进行查询。
本文标签: