我和Protractor有很多不稳定因素,我确信有些东西我不明白.有时我需要在继续之前单击按钮时使用.then(),有时它没有任何影响,我不应该使用.then()或测试失败.
我想知道在Protractor中测试时我应该何时使用.then()回调?示例:
createAccountForm = $('#form-create-account');
submitButton = createAccountForm.$('button[type=submit]');
browser.wait(EC.elementToBeClickable(submitButton), 5000);
submitButton.click(); // .then(function(){ <-- uncomment in the .then form
// find the confirmation message
var message = $('.alert-success');
browser.wait(EC.visibilityOf(message), 5000);
log.debug('After visibilityOf');
expect(message.isPresent()).to.be.eventually.true;
// }); --> uncomment when in .then form
Run Code Online (Sandbox Code Playgroud)
当我使用这种形式的测试(没有.then())时,我在浏览器上看到点击按钮没有完成,测试继续以下期望然后停止.
如果我使用.then()表单,则单击按钮即可完成,测试将继续,不会出现错误.
在其他测试中,单击按钮时我不需要使用then()回调.
那么,我什么时候应该使用.then(),什么时候不使用?
让 - 马克
我正在使用Protractor(v 1.3.1)为我的Angular 1.2.26应用程序运行E2E测试.
但有时,测试是可以的,有时候不是.似乎有时检查是在显示更新之前完成的(或类似"同步"问题).我尝试了很多选择:
browser.driver.sleep说明,browser.executeScript('$.fx.off = true')browser.waitForAngular()说明没有成功.
使用量角器重新进行E2E测试的最佳做法是什么?
JM.
我想在Logstash过滤器中制作一个嵌套字段的副本,但我无法弄清楚正确的语法.这是我尝试的:
语法错误:
mutate {
add_field => { "received_from" => %{beat.hostname} }
}
Run Code Online (Sandbox Code Playgroud)
beat.hostname未被替换
mutate {
add_field => { "received_from" => "%{beat.hostname}" }
}
Run Code Online (Sandbox Code Playgroud)
beat.hostname未被替换
mutate {
add_field => { "received_from" => "%{[beat][hostname]}" }
}
Run Code Online (Sandbox Code Playgroud)
beat.hostname未被替换
mutate {
add_field => { "received_from" => "%[beat][hostname]" }
}
Run Code Online (Sandbox Code Playgroud)
没门.如果我给出一个非嵌套字段,它按预期工作.
logstash收到的数据结构如下:
{
"@timestamp" => "2016-08-24T13:01:28.369Z",
"beat" => {
"hostname" => "etg-dbs-master-tmp",
"name" => "etg-dbs-master-tmp"
},
"count" => 1,
"fs" => {
"device_name" => "/dev/vdb",
"total" => 5150212096,
"used" => 99287040,
"used_p" => 0.02,
"free" …Run Code Online (Sandbox Code Playgroud) 我在JBoss 7.1.1中遇到了CDI Injection进入Weld容器的问题
我有以下对象模型:
@Stateless
class ServiceEjb {
@Inject
A a;
}
class A {
@Inject
B b;
}
class B {
@Inject
A a;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的无状态类中注入A或B时,注入循环并使用javax.enterprise.inject.CreationException崩溃.
我尝试了很多东西(范围,@ Singleton在A或B但没有成功).我不想打破代码,那些注射让人感觉到了.
任何线索将不胜感激.
Jq是一个很好的工具来处理bash中的JS文档.但由于Mongodb添加的功能,我不能用来解析一些MongoDB输出文件.MongoDB Json返回的示例:
{
"_id" : "example",
"version" : 23,
"members" : [
{
"_id" : 0,
"host" : "192.168.0.1:27017",
"slaveDelay" : NumberLong(0), <---- Here jq failed to parse this line
"votes" : 1
}
]}
Run Code Online (Sandbox Code Playgroud)
jq给出的错误是:
parse error: Invalid numeric literal at line 15, column 32
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我有这个 ingress.yaml 基本配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
sia: aza
app: asap-ingress-internal
name: asap-ingress-internal
annotations:
kubernetes.io/ingress.class: "nginx-external"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- host: the-host-value
http:
paths:
- path: /asap-srv-template/(.*)
backend:
serviceName: asap-srv-template
servicePort: 8080
Run Code Online (Sandbox Code Playgroud)
并且只想替换 spoec.rules.host 值(并保持所有 http.paths 原样。
所以我创建了一个这样的 env-var.yaml :
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: asap-ingress-internal
spec:
rules:
- host: the.real.hostname
Run Code Online (Sandbox Code Playgroud)
但结果如下:
$ kustomize build
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/use-regex: "true"
labels:
app: asap-ingress-internal
env: dev
sia: aza
name: asap-ingress-internal
namespace: aza-72461-dev …Run Code Online (Sandbox Code Playgroud) 我有一个运行MongoDB数据库的docker容器.为了保持数据的持久性,我在容器上安装了一个卷,该容器是使用xfs格式化的AWS EBS卷(MongoDB建议).
运行命令如下:
$ docker run --name MongoDB -p 27017:27017 --volume /data/mongo/db:/data/db --volume /data/mongo/conf:/data/configdb mongo:3.4 --config /data/configdb/mongodb.conf
Run Code Online (Sandbox Code Playgroud)
但我总是得到以下错误:
chown: cannot read directory '/data/configdb': Permission denied
chown: cannot read directory '/data/db': Permission denied
Run Code Online (Sandbox Code Playgroud)
我在所有/ data/mongo目录和子目录上尝试了很多chmod和chown命令,直到我来到chmod -R 777/data/mongo但不再成功.在mongo Dockerfile上,我看到入口点chown/data/db和/ data/configdb:https://github.com/docker-library/mongo/blob/30d09dbd6343d3cbd1bbea2d6afde49f5d9a9295/3.4/docker-entrypoint.sh
chown -R mongodb /data/configdb /data/db
Run Code Online (Sandbox Code Playgroud)
所以我坚持使用这个目录访问权限.
更多信息.我在AWS,ECS,Centos 7上.
$ docker info
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 3
Server Version: 1.12.5
Storage Driver: devicemapper
Pool Name: docker-202:1-86279-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB …Run Code Online (Sandbox Code Playgroud) 我在Node.js应用程序中使用Mongoose,我想使用模型的继承.我遵循这里给出的指令mongoose和其他链接中的继承,但我无法弄清楚如何继承静态方法.
这是我尝试的:
// The BaseSchema class :
function BaseSchema(objectName, schema) {
log.trace('BaseSchema CTOR : objectName=%s schema=%s', objectName, schema);
Schema.apply(this, [schema]);
var _objectName = objectName;
...
}
BaseSchema.prototype = new Schema();
BaseSchema.prototype.constructor = BaseSchema;
// !!! Here I try to expose the removeAll statics methods for all sub-schema !!!
BaseSchema.prototype.removeAll = function() { ... }
Run Code Online (Sandbox Code Playgroud)
这是继承的类
// The inherited class
var AccountSchema = new BaseSchema('account', {
...
}
mongoose.model('Account', AccountSchema);
Run Code Online (Sandbox Code Playgroud)
pb是每次我尝试使用removeAll函数.例如 :
var Account = mongoose.model('Account');
Account.removeAll(function …Run Code Online (Sandbox Code Playgroud) 全部都在标题中。我想在AngularJS应用程序中使用CrytoJS库,但我不能摆脱它。
我用bower安装crytoJS:
bower install cryptojslib
Run Code Online (Sandbox Code Playgroud)
然后我加载所需的库:
<script type="text/javascript" src="/public/system/lib/cryptojslib/rollups/md5.js"></script>
<script type="text/javascript" src="/public/system/lib/cryptojslib/components/enc-base64-min.js"></script>
Run Code Online (Sandbox Code Playgroud)
我尝试像这样使用CryptoJS:
var pwd = CryptoJS.MD5(params.email+'|'+params.password).toString(CryptoJS.enc.Base64);
Run Code Online (Sandbox Code Playgroud)
运行此代码时,出现以下错误:
'CryptoJS is not defined'
Run Code Online (Sandbox Code Playgroud)
我读过,应该可以将CryptoJS包装到一个模块中,但是我不知道该怎么做。
任何帮助将不胜感激。
JM。
我正在尝试为计量目的编码拦截器.我的拦截器必须在任何http查询之前(以及在Express完成其工作之前)调用一些时间信息,并在Express'工作之后调用,以获得调用的持续时间.
我正在尝试使用中间件,它在"之前"调用中工作正常,但不适用于"之后"调用,因为当发现路由时,通过其他中间件的传播被停止.
请提供一些线索,让一些拦截器在所有情况下工作.
我想要的是Javascript实际上是一种AOP ......
'之前'拦截器中间件是:
// JMC Add metrologie informations for all route called
app.use(function (req, res, next) {
var name = req.originalMethod + req.originalUrl;
log.trace('Start MetroInfo for route : %s', name);
metro.startMetrologie(name);
return next();
});
Run Code Online (Sandbox Code Playgroud)
提前致谢.
mongodb ×3
angularjs ×2
node.js ×2
protractor ×2
cdi ×1
centos7 ×1
cryptojs ×1
docker ×1
express ×1
inheritance ×1
interceptor ×1
javascript ×1
jboss-weld ×1
jq ×1
json ×1
kubernetes ×1
kustomize ×1
logstash ×1
mongoose ×1
promise ×1
testing ×1