我正在尝试使用Karma + Jasmine编写单元测试,但遇到角度模拟错误.运行grunt测试时出现以下错误:
PhantomJS 1.9.8(Mac OS X)错误TypeError:'undefined'不是/ Users/danielbogart/documents/coding/work/AexNav/bower_components/angular-mocks /中的对象(评估'angular.mock = {}') angular-> mocks.js:17 Chrome 39.0.2171(Mac OS X 10.9.4)错误未捕获的TypeError:无法在/ Users/danielbogart/Documents/coding/work/AexNav/bower_components/angular-中设置undefined属性'mock'嘲笑/ angular-> mocks.js:17
Gruntfile karma配置:
karma: {
options: {
frameworks: ['jasmine'],
files: [
'dom_munger.data.appjs',
'tests/spec/*.js',
'bower_components/angular-mocks/angular-mocks.js'
],
logLevel: 'ERROR',
reporters: ['mocha'],
autoWatch: false, //watching is handled by grunt-contrib-watch
singleRun: true
},
all_tests: {
browsers: ['PhantomJS', 'Chrome']
},
during_watch: {
browsers: ['PhantomJS']
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我的量角器e2e页面对象中有一个函数,它从下拉菜单中取消选中几个选项.它以前工作正常,但现在我收到以下错误:
失败:陈旧元素引用:元素未附加到页面文档
我已尝试在for循环的每次迭代中获取元素,但for循环在第一次解析promise之前执行,这意味着x的"limit"值重复传递,测试只是单击相同的下拉列表选择几次.
this.uncheckColumns = function(limit) {
element(by.className('fa-cog')).click();
element.all(by.className('multiSelectLi')).then(function(options) {
for (x = 1; x < limit; x++) {
options[x].click();
};
});
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试用Karma编写一些单元测试,并收到以下错误:
PhantomJS 1.9.8(Mac OS X)错误错误:[$ injector:nomod]模块'portfolioMockupApp.services'不可用!您要么错误拼写了模块名称,要么忘记加载它.如果注册模块,请确保将依赖项指定为第二个参数. http://errors.angularjs.org/1.3.3/ $喷油器/ NOMOD?P0 = portfolioMockupApp.services在/Users/danielbogart/Documents/coding/work/portfolio-mockup/bower_components/angular/angular.js:1749
另外,我在portfolioMockupApp.services模块中有两个单独的文件,它们都保存在scripts/services目录中.
Karma.conf文件部分:
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-animate/angular-animate.js',
'bower_components/angular-cookies/angular-cookies.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-touch/angular-touch.js',
'test/mock/**/*.js',
'test/spec/**/*.js',
'app/scripts/services/*.js',
'app/scripts/directives/*.js',
'app/scripts/controllers/*.js',
'app/scripts/app.js',
'node_modules/angular/angular.js',
'node_modules/angular-mocks/angular-mocks.js',
'./src/**/*.js',
'./test/**/*.js'
],
Run Code Online (Sandbox Code Playgroud)
Portfolio.js规范(当前第一次也是唯一的测试):
'use strict';
describe('Controller: PortfolioCtrl', function () {
// load the controller's module
beforeEach(module('portfolioMockupApp', 'portfolioMockupApp.services'));
var PortfolioCtrl,
scope;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $scope, $log, $stateParams, $state,
$rootScope,portService, portfolioCreateService) {
scope = $rootScope.$new();
PortfolioCtrl = $controller('PortfolioCtrl', {
$scope: scope
});
}));
it('should …
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置Action Mailer,以便在我的开发环境中为Devise发送重置密码电子邮件.我在启动本地服务器时收到以下错误:未定义的局部变量或方法`"smtp",在我的代码中引用"address:"smtp.gmail.com""行.这是我在development.rb文件中添加的Action Mailer代码:
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: “smtp.gmail.com”,
port: 587,
domain: ENV["GMAIL_DOMAIN"],
authentication: “plain”,
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}
Run Code Online (Sandbox Code Playgroud)
我在根目录中的.env文件中设置了环境变量.谢谢!
我有一个区域样条高图,似乎错误地沿y轴放置数据点.我正在使用angular-highcharts指令并通过我的服务提供图表选项.数据本身是正确的,标签也是如此,这些点沿y轴放置得太高.请参阅下面的图片和代码:
服务功能:
function getReportingChart(quarterlyData, chartType, reportingType) {
// extract top 4 drugs
var top4 = _.sortBy(quarterlyData, 'x2q2').reverse().slice(0, 4);
var dataSeries = [];
var firstDrug = quarterlyData[0];
var seriesNumber = 0;
var quarters = ['Q1 2012', 'Q2 2012', 'Q3 2012', 'Q4 2012', 'Q1 2013', 'Q2 2013', 'Q3 2013', 'Q4 2013', 'Q1 2014', 'Q2 2014'];
_.each(top4, function (drug) {
var name = drug.A;
var dataArray = [];
dataArray.push(drug.x0q1);
dataArray.push(drug.x0q2);
dataArray.push(drug.x0q3);
dataArray.push(drug.x0q4);
dataArray.push(drug.x1q1);
dataArray.push(drug.x1q2);
dataArray.push(drug.x1q3);
dataArray.push(drug.x1q4);
dataArray.push(drug.x2q1);
dataArray.push(drug.x2q2);
var newDataSet = new buildSeries(name, …
Run Code Online (Sandbox Code Playgroud) 我有一个AngularJS项目,它使用webpack进行捆绑,服务和构建 - 没有使用像bower或gulp这样的任务运行器.我希望能够设置环境变量,例如我将在本地和生产中使用的REST API端点,然后访问我实际的AngularJS项目文件中的那些,特别是在控制器内部.定义这些env变量并将其传递给项目的最佳方法是什么?
我最近在Heroku上推出了一个Rails应用程序,并使用了通过Google Domains注册的域名.除了运行KitKat的Android设备之外,自定义URL会在我尝试过的所有设备和计算机上加载该网站.在KitKat设备上,我收到"ERR_NAME_NOT_RESOLVED"错误.如果我使用heroku网址,该网站会加载包括KitKat在内的所有设备,这让我相信这是一个与谷歌域名相关的问题.我的域名通过CNAME记录与heroku网站相关联.有任何想法吗?已经提供了谷歌支持的门票,但到目前为止他们没有运气.谢谢.
angularjs ×5
javascript ×5
jasmine ×2
karma-runner ×2
unit-testing ×2
actionmailer ×1
android ×1
cname ×1
custom-url ×1
devise ×1
email ×1
heroku ×1
highcharts ×1
nameerror ×1
phantomjs ×1
protractor ×1
selenium ×1
webpack ×1