有什么命令可以让karma-jasmine单元测试在遇到第一次测试失败时停止测试.例如,在python中,命令如下:
py.test -x # stop after first failure
py.test --maxfail=2 # stop after two failures
Run Code Online (Sandbox Code Playgroud)
目前我正在使用node_modules/karma/bin/karma start它运行所有测试并且只在执行完所有操作后停止
我正在使用PostgreSQL和Alembic进行迁移.当我向User表添加新列时,Alembic使用以下脚本生成了迁移:
revision = '4824acf75bf3'
down_revision = '2f0fbdd56de1'
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column(
'user',
sa.Column(
'username',
sa.Unicode(length=255),
nullable=False
)
)
def downgrade():
op.drop_column('user', 'username')
Run Code Online (Sandbox Code Playgroud)
我真正想要做的是在升级生产版本时自动生成用户名的值.换句话说,我的生产版本中有很多用户,如果我在其上运行上述升级,则会出现错误,指出用户名不能为NULL,因此我必须删除所有用户,升级用户表和再次添加用户后,这很痛苦.因此,我想用以下内容更改上述脚本:
revision = '4824acf75bf3'
down_revision = '2f0fbdd56de1'
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column(
'user',
sa.Column(
'username',
sa.Unicode(length=255)
)
)
op.execute(
'UPDATE "user" set username = <email address with no '@'
and everything comes after '@' sign should be removed>
WHERE email is not null'
)
<only …Run Code Online (Sandbox Code Playgroud) 我有一个小编辑应用程序,下面有文件.当我提交tbe表单时,它会向我显示AttributeError:'EditForm'对象没有属性'validate_on_submit'任何人都可以告诉我这是什么问题?
forms.py
from flask.ext.wtf import Form
from wtforms import Form, TextField, BooleanField, PasswordField, TextAreaField, validators
from wtforms.validators import Required
class EditForm(Form):
"""edit user Profile EditForm"""
username = TextField('username', [validators.Length(min=3, max=50), validators.Required()])
email = TextField('email', [validators.Length(min=5, max=100), validators.Email, validators.Required()])
password = PasswordField('password', [validators.Required()])
age = TextField('age', [validators.Length(min=1, max=3), validators.Required()])
about_user = TextAreaField('about_user', [validators.Length(max=500)])
img_url = TextField('img_url')
Run Code Online (Sandbox Code Playgroud)
views.py
from flask import render_template, url_for, flash, g, redirect, session, request
from flask.ext.login import login_user, logout_user, current_user, login_required
from forms import LoginForm, RegisterForm, …Run Code Online (Sandbox Code Playgroud) 我有react/ redux运行应用webpack,并想使用moment-timezone图书馆.我已经检查了如何在webpack中使用moment-timezone?在SO中发布此问题并json-loader按照问题中的描述进行安装.但仍然需要moment-timezone在我的申请中:
const momentTz = require('moment-timezone');
Run Code Online (Sandbox Code Playgroud)
它引发了一个错误:
ERROR in ./~/moment-timezone/index.js
Module not found: Error: Cannot resolve 'file' or 'directory' /path-to-the-project/node_modules/moment-timezone
@ ./~/moment-timezone/index.js 2:15-51
Run Code Online (Sandbox Code Playgroud)
在哪里@ ./~/moment-timezone/index.js 2:15-51:
moment.tz.load(require('./data/packed/latest.json'));
Run Code Online (Sandbox Code Playgroud)
但是,当我从build文件夹中包含缩小版本时,它正常工作,如下所示:
const momentTz = require('moment-timezone/builds/moment-timezone-with-data.min');
Run Code Online (Sandbox Code Playgroud)
webpack配置:
let jsonLoader = require('json-loader');
loaders: [
{
include: /\.json$/,
loaders: [jsonLoader]
}
]
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用Flask BluePrint并且必须使用主要部分:1.Admin和2. Public.当我尝试将loginManager导入到我的views.py文件时,我收到错误ImportError:无法导入名称lm
我的文件夹结构如下:
~/LargeApplication
|-- run.py
|-- config.py
|__ /env # Virtual Environment
|__ /app # Application Module
|-- __init__.py
|-- models.py
|-- /admin
|-- __init__.py
|-- views.py
|__ /templates
|-- ..
|__ ..
|__ .
Run Code Online (Sandbox Code Playgroud)
我在__ init__ .py文件/ app/__ init__ .py中初始化LoginManager()
from flask.ext.login import LoginManager
lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'
Run Code Online (Sandbox Code Playgroud)
当我尝试在/app/admin/views.py中导入lm时
from app import lm
Run Code Online (Sandbox Code Playgroud)
它引发了ImportError.
ImportError: cannot import name lm
Run Code Online (Sandbox Code Playgroud)
你能告诉我这可能是什么问题吗?
我正在为我的应用程序使用Flask并得到AttributeError:'_Option'对象没有属性'_sa_instance_state'错误。不知道它是关于什么的。我用谷歌搜索,看来这是一个SQL炼金术问题。你能帮我吗?
这是我的models.py:
#current table is used to make navigation hierarchy. eg. menu/submenu
#eg. About Us (History, Mission, Vision)
menu_hierarchy = db.Table('menu_hierarchy',
db.Column('parent_id', db.Integer, db.ForeignKey('menu.id')),
db.Column('child_id', db.Integer, db.ForeignKey('menu.id'))
)
class Menu(db.Model):
"""Menu is used for websites navigation titles.
eg. Home/About Us/Blog/Contacts/and etc"""
id = db.Column(db.Integer, primary_key = True)
title = db.Column(db.String(255))
title_eng = db.Column(db.String(255))
alias = db.Column(db.String(255))
menu_type = db.Column(db.String(10))
ordering = db.Column(db.SmallInteger, default = '1')
check_out_time = db.Column(db.DateTime)
access = db.Column(db.String(30))
published = db.Column(db.SmallInteger, default = '1')
parent_id …Run Code Online (Sandbox Code Playgroud) 我$broadcast在每个测试用例之后使用下面的代码重置,但它似乎$rootScope.$broadcast.reset();无法正常工作,因为测试波纹管应该返回1,但它返回6.
似乎原因是andCallThrough(),因为在我使用它之前没有andCallThrough()函数,但是在一些重构之后它给了我一个错误TypeError: Cannot read property 'defaultPrevented' of undefined,所以我不得不用来防止这个错误.
问题是我如何重置broadcast使用时间andCallThrough或是否有另一种更精确的方法?
beforeEach(function() {
spyOn($http, 'post');
spyOn($rootScope, '$broadcast').andCallThrough();
});
afterEach(function() {
$http.post.reset();
$rootScope.$broadcast.reset();
});
it('should make a POST request to API endpoint', function() {
$http.post.andCallThrough();
var response = { id: '123', role: 'employee', email: 'user@email.com', username: 'someUsername' };
$httpBackend.expectPOST(apiUrl + 'login').respond(response);
service.login();
$httpBackend.flush();
$timeout.flush();
expect($rootScope.$broadcast.callCount).toBe(1);
expect($rootScope.$broadcast).toHaveBeenCalledWith(AUTH_EVENTS.loginSuccess, response);
});
Run Code Online (Sandbox Code Playgroud) 当我尝试用户验证提交的数据并检查输入的电子邮件是否存在时,我的小注册应用程序给出错误.
这是我的文件:
表格:
from flask.ext.wtf import Form
from wtforms import TextField, BooleanField, PasswordField, TextAreaField, validators
from wtforms.validators import Required
from app import models
class RegisterForm(Form):
"""RegisterForm class needed for retrieving data from user"""
username = TextField('username', [validators.Length(min=3, max=50), validators.Required()])
email = TextField('email', [validators.Length(min=3, max=100), validators.Required()])
password = PasswordField('password', [validators.Required()])
age = TextField('age', [validators.Length(min=1, max=3), validators.Required()])
about_user = TextAreaField('about_user', [validators.Length(max=500)])
img_url = TextField('img_url')
def email_unique(self, email):
if models.User.query.filter_by(email = email).first() != None:
self.email.errors.append('This E-mail address is already in use. Please choose …Run Code Online (Sandbox Code Playgroud) 我将sqlalchemy从0.7升级到0.9.6.升级后,我收到以下错误:
TypeError
TypeError: filter_by() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)
在没有任何问题的情况下工作之前.我该如何处理这个问题?
我遇到了在CircleCi上运行的chrome驱动程序的问题.问题是运行时:
./node_modules/.bin/webdriver-manager update
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令检查chromedriver和selenium的版本:
ls -lt node_modules/protractor/selenium
Run Code Online (Sandbox Code Playgroud)
它显示了最新版本:
selenium-server-standalone-2.45.0.jar
chromedriver
chromedriver_2.15.zip
Run Code Online (Sandbox Code Playgroud)
根据npm.taobao.org的说明, ChromeDriver 2.15版支持Chrome v40-43.但是CicleCi 文档说它使用Chrome版本38.0.因此,我需要使用与Chrome v38.0兼容的ChromeDriver v2.13.我的问题是,如何强制webdriver-manager使用ChromeDriver v2.13而不是最新版本.
flask ×4
python ×4
sqlalchemy ×2
unit-testing ×2
upgrade ×2
alembic ×1
angularjs ×1
database ×1
django ×1
forms ×1
login ×1
momentjs ×1
node.js ×1
postgresql ×1
protractor ×1
selenium ×1
timezone ×1
webpack ×1