Articles of 茉莉花

鉴于以下文件结构,如何运行基本的量angular器testing?

我一直在试图按照这里给出的教程。 但是,当我尝试开始量angular器testing,没有testing似乎运行。 然而,我的webdriverpipe理器似乎运行完美。 基本上没有任何反应。 我已经尝试了以下内容: node protractor conf.js node node_modules/protractor conf.js node node_modules/protractor node_modules/protractor/conf.js node node_modules/protractor node_modules/protractor/tests/conf.js 这些工作都没有,第一个抛出一个错误。 我试图把文件的副本放在多个目录中,但是这些文件都不起作用。 我不确定问题是什么,但这是多less文件设置。 ui_directory/ <– This is the overall directory for my web projects ui_directory/conf.js ui_directory/todo-spec.js ui_directory/node_modules/ ui_directory/node_modules/protractor/ ui_directory/node_modules/protractor/conf.js ui_directory/node_modules/protractor/todo-spec.js ui_directory/node_modules.protractor/tests/ ui_directory/node_modules.protractor/tests/conf.js ui_directory/node_modules.protractor/tests/todo-spec.js 究竟是从教程中运行testing的正确命令是什么? 所有的todo-spec.js和conf.js文件都是一样的。 我的conf.js文件包含以下内容: exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', specs: ['todo-spec.js'] };

整合testing在Heroku爱好开发中偶尔超时

由于我们没有从help.heroku.com得到任何有用的支持,我们在这里做最后的尝试。 我们正在开发一个经典的networking应用程序,包括: —– —– —- |WEB| <—-> |API| <—-> |DB| —– —– —- 我们目前正在与以下Heroku Dynos / Datastores合作 Heroku Postgres:业余爱好基础 Heroku API Dyno:业余爱好 Heroku WEB Dyno:业余爱好 技术堆栈是: 运行时:nodejs(4.4.0) db:postgres(9.6.1) testframework:jasminejs(2.5.1) 查询生成器:knexjs(0.10.0) 我们最近从自托pipedocker环境迁移到Heroku,并configuration了Herokus CIpipe道,这对于unit testing来说工作正常 – 但不是集成testing。 testing偶尔失败(平均每次同一提交的第三次testing)。 这不足以build立CI / CD。 这里是我们得到的错误信息: ************************************************** * Failures * ************************************************** 1) integration test collections repository create() should return AUTHENTICATION_REQUIRED if […]

茉莉花function导出没有父对象,并在NODE中使用ES6导入

经过大量的研究,我找不到一种方法来模拟不带父对象的导出函数。 例如我试图模拟函数导出以下方式: module.exports = function thing(event) {}; 或在ES6 export function thing(event) {}; 在将这些文件导入到testing文件中时,我尝试像这样导入: import {thing} from 'emvio-util-responses; //call some function that calls thing() spyOn(???, 'thing').and.returnValue({}); expect(???.thing).toHaveBeenCalled(); 我已经尝试了很多方法来完成这一点,但模拟不被称为。 有些人build议导入*并提供一个别名作为父对象。 喜欢这个: import * as SomeObj from 'emvio-util-responses; //call some function that calls thing() spyOn(SomeObj , 'thing').and.returnValue({}); expect(SomeObj .thing).toHaveBeenCalled(); 这不起作用。 其他人则build议使用窗口对象 spyOn(window, 'thing').and.returnValue({}); 但是我在节点:(。

为什么不是这个茉莉节点testing失败?

我正在使用Express.js和Jasmine-node进行testing。 这是我的服务器代码: var express = require('express'); var app = express(); app.get('/', function (request, response) { response.send("Bonjour!"); }); module.exports = app; 这是testing: var request = require('http'); var app = require('../src/app'); var server; describe('textreader', function(){ beforeEach(function(done){ server = app.listen(3333, function (err, result) { if (err) { done(err); } else { done(); } }); }); afterEach(function(){ server.close(); }); […]

从量angular器运行Java程序

比方说,我有一个Java程序来设置和清理端到端testing的数据。 它可以删除所有表中的所有内容,用一些初始数据填充这些内容。 有没有办法从量angular器内执行它? 我对这两种方法都很感兴趣,例如在beforeEach和afterEach ,以及在testing之间使用量angular器。

模拟请求对象不能用于node.js中的testing

我有一个模块用于检查会话授权。 这是一个非常简单的脚本,读取会话,如果用户login,则返回true或false。这是我的脚本: module.exports = { check: function(req) { return ( req.session && req.session.swipe && req.session.swipe === true ); } } check()函数将请求对象作为参数,然后读取会话对象。 我想用Jasminetesting它,以确保它返回正确的布尔值。 这是规范: var Auth = require('../controllers/auth'); describe("Authorization", function(){ it("should grant access", function(next) { var request = { session: { swipe: true } }; var value = Auth.check(request); expect(request.session.swipe).toBeDefined(); expect(value).toBe(true); }); it("should deny access", function(next) […]

nodej上的Jasmine&jasmine-reporter缺less输出

我有一些Jasmineunit testing,正在用nodejstesting它们。 使用nodejs 0.10.31,jasmine-npm 2.2.1和jasmine-reporter 2.0.5 testing运行,但我没有通过茉莉花记者得到任何输出。 logging显示行'16规格,0失败',但没有findxml文件。 经过多天的testing各种设置和谷歌我几乎准备放弃:( 目前的设置是使用帮手。 var reporters = require('jasmine-reporters'); var junitReporter = new reporters.JUnitXmlReporter({ savePath: '..', consolidateAll: false }); var jasmineEnv = jasmine.getEnv(); jasmineEnv.beforeAll(function () { console.log('Before all…'); jasmineEnv.addReporter(junitReporter); }); 这个代码被调用,我也试图添加记者,而不是beforeAll ,这似乎做了完全一样的。 我已经添加了一些日志到JUnitXmlReporter里面的各种方法,除了jasmineStarted , jasmineDone和writeFile之外,我看起来大部分是按照预期打印的。 特别是缺lesswriteFile似乎是我的问题的关键。 我在做什么错我错过了什么?

量angular器“无法读取属性”点击“未定义的”

我不能点击一些CSS定位器来操纵他的“math地板”。 请你帮忙。 这个testing的CSS部分: <input ng-attr-id="industry_{{$index}}" ng-attr-value="{{$index}}" ng-model="stateData.currentIndustryIndex" type="radio" class="ng-pristine ng-valid" name="00K" id="industry_0" value="0"> 这是我的testing – it ('onboarding – screen 2', function() { browser.driver.wait(by.css('.industry input[type="radio"]'), 10000); element (by.css('.industry input[type="radio"]'))[Math.floor(Math.random() * (12 – 0 + 1))].click(); //element(by.css("li.ng-scope.icon-laptop > label.ng-binding")).click(); browser.driver.sleep(1000); //element(by.xpath("//div[1]/div/main/div[3]/section/div/form/div[1]/section[2]/div/ul/li[4]/label")).click(); browser.driver.sleep(2000); //element(by.css('input.btn')).click(); browser.driver.sleep(3000); //Capture Screenshoot browser.driver.takeScreenshot().then(function(data){ var base64Data = data.replace(/^data:image\/png;base64,/,""); var fs = require("fs"); fs.writeFile("onboarding-screen2.png", base64Data, […]

为什么我的茉莉花unit testing不等待“完成”?

我在我的节点应用程序中testing… it('will call done', function(done) { myObj.fn(function(){ done(); } }); 和代码…. myObj.fn = function(success){ setTimeout(2000000000,success); } 当我运行testing时,我在输出中得到这个… -MacBook-Pro:torus-pqdata user$ npm test > torus-pqdata@0.0.0 test /Stuff/code bases/2015/torus-pqdata > jasmine-node specs/ 但是,正如你所看到的unit testing只是退出没有失败,但我需要它超时(我试图模拟悬挂的东西)。 我如何让它超时?

停止JavaScript执行,直到承诺解决

我有一个特定的用例,在testing代码中,我想获取表头(asynchronous),然后dynamic创build一个JavaScript对象的getters。 我想在我的testing中使用的语法是antenneTable.row(0).getAzimut(); 。 我遇到的问题是antenneTable.row(0); 返回一个承诺,所以getAzimut尚未定义在该对象上。 如果我使用antennetable.row(0).then(),但是想要保留语法,我知道如何解决这个问题。 提前致谢 这是我的代码: Row.js 'use strict'; var Row = function (row, classes) { var outer = this; function camelCase(input) { return input.toLowerCase().replace(/-(.)/g, function(match, group1) { return group1.toUpperCase(); })} for(var i =0 ; i< classes.length; i ++){ var methodName = camelCase("get-"+classes[i]); (function(index) { outer[methodName] = function () { return row.all(by.tagName('td')).get(index).getText(); } […]