Articles of 摩卡

摩卡REST API请求

我正在编写testing框架来testing用node.js写成的服务器。 样本testing案例: 调用API“GET / authenticate”并存储“Token” 示例:curl -k -X GET https://.org:8000 / vxapi / 1.0 / authenticate -H“用户名:root”-H“密码:root123” { “令牌”: “eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhOWRmZDI5ZjE3YzQiLCJpYXQiOjE0ODcwNzgwMTB9.Nitd5DnWTCbSw8enXVaGdGRYWuYQx7ojRaYESnsTuZY”, “状态”: “OK”} 然后将“Token”作为头部传递给其他请求,如“GET / volume” 目前,我正在编写脚本,以便至less进行身份validation并生成令牌并作为响应显示。 它的错误为“GET / user [TypeError:无法读取未定义的属性状态]”。 只是想确认头是否是问题或与“https”的问题。 var should = require("should") var request = require("supertest"); var url = "https://.org:8000/vxapi/1.0" describe('GET /user', function() { it('respond with json', function(done) { request(url) .get('/authenticate') .set('username', […]

找不到模块“meteor”

我想从命令行用摩卡框架testingmeteor应用程序: 摩卡** / * / * spec.js – 编译器js:babel-core / register 所有的testing工作正常,但是当testing文件开始时: import { Meteor } from 'meteor/meteor'; import { Factory } from 'meteor/dburles:factory'; 导入meteor等。我收到错误: 错误:无法find模块“meteor/meteor” 所以我的问题是: 我怎样才能testing一个meteor应用程序没有命令“meteortesting”? 我如何引导摩卡运行meteortesting? 谢谢。

使用dynamodb在本地testingnodejs aws lambda

上下文: serverless framework , lambda , nodejs , dynamodb-local , serverless-mocha-plugin 。 我想用一个命令启动本地testing。 为了实现这一点,我想了一下做一个run-tests shell脚本。 但是我想我没有按照正确的方式去做。 手动启动testing时,在2个控制台中,我启动dynamodb local: sls dynamodb start 然后,当准备好时,在另一个控制台中,我运行testing: sls invoke test -f loadDepartmentsOfFrance 鉴于sls dynamodb start是asynchronous的,它可能需要更多或更less的时间, 是否有可能将这些命令组合在一个shell脚本中? 我正在尝试 sls dynamodb start & sls invoke test -f loadDepartmentsOfFrance 但第二个命令并没有等待第一个正确启动。 没有& ,第二个命令是永远不会到达的。 即使我没有到达那里,我怎样才能停止在同一脚本dynamodb local的dynamodb local ? 没有sls dynamodb stop命令。 随意build议使用dynamodb,S3,endpoints和sqs服务的本地lambdatesting方法。

Node.js发布请求testingsupertest,express,mocha返回undefined

我曾在网站上看过类似的问题,但我不明白它们如何适用于我的问题: const request = require('supertest'); var express = require('express'); const mocha = require('mocha'); var bodyParser = require('body-parser') var app = express() app.use(bodyParser()); // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) describe("Post valid ID", function(){ it("returns expected data", function(done){ var goodID = ({id: '100', name: 'Edith'}); request("http://localhost:8000") .post("/users") .set('Accept', 'application/json') .type("json") .expect('Content-Type', 'application/json; […]

摩卡和相对path

我的代码是基于组件的,testing直接驻留在组件文件夹中。 一些组件依赖文件(或其他资源),如ConfigurationManager组件: class ConfigurationManager { constructor(protected configDir = 'config') { } addResource(file) { let fileUri = path.join(path.dirname(require.main.filename), this.configDir, file); let configuration = require(fileUri); // … } } config目录位于项目的根目录下,因此fileUri在这里是有意义的。 但是当运行testing时( mocha -r ts-node/register src/Components/**/Tests/*Test.ts )会失败,因为根目录不再是项目根目录,而是在node_modules的mocha目录。 如何解决这个问题?

使用Mocha生成节点应用程序testing和LCOV报告

我的团队最近开始研究一个完全由ES6编写的先前存在的Node应用程序(在我们开始工作之前,它已经通过了几个不同的开发者)。 该应用程序使用摩卡和Nyan作为摩卡记者进行了最低程度的unit testing。 package.json文件已经包含以下命令来运行testing: "test": "node ./node_modules/mocha/bin/mocha –compilers js:babel-core/register ./test/**/*.spec.js" 作为我们部署周期的一部分,我们使用Travis和Codacy的CI / CDpipe道。 因此,为了启用Codacy的“代码覆盖”部分,我需要对应用程序库和package.json文件进行一些更改。 基本的想法是让摩卡生成一个.lcov文件,然后通过Travis构build脚本传送到Codacy。 做了一些研究后,我把以下内容成功地生成了lcov文件: "build-test": "node ./node_modules/mocha/bin/mocha -R mocha-lcov-reporter > coverage/coverage.lcov –compilers js:babel-core/register ./test/**/*.spec.js –reporter nyan" 问题是,我得到了.lcov文件的Codacyparsing错误。 我查看了其他项目的lcov文件,似乎还有额外的数据在我生成的。 这里的参考是生成的lcov文件: 0 0 0 [4A[5C- [5C- [5C- [5C- [4A[6C_,——, [6C_| /\_/\ [6C^|__( – .-) [6C "" "" [4ACONSTRUCTOR 1 0 0 [4A[5C-_ [5C-_ [5C-_ [5C-_ […]

当使用摩卡进行testing时,Node.js执行CronJob

所以,我有一些js代码,这是一个slackbot,应该简单地监听和parsing提供的date,然后启动一个CronJob按照提供的cron或date格式运行某个函数。 像这样的东西。 var CronJob = require ('cron').CronJob; … robot.respond(date, function (msg)) { if(!isValidDate(date)) msg.reply("not a valid date); var interval = isCronDate(date) ? date : new Date(date); msg.reply("Job about to be scheduled.") var schedule = new CronJob(interval, processDataOnDate(), function() { msg.reply("hello") }, true); } 我有一个testing这个代码的咖啡文件,我期望得到一些反馈,但是我不希望根据我在testing代码中提供的date来执行cron作业。 但是,这是。 这是正常的吗? 由于这是一个unit testing,摩卡强迫代码完成执行,还是我做错了什么? 我正在运行这个来执行我的unit testing。 mocha –compilers coffee:coffee-script/register 为了得到更多的信息,我把这个作为一个slackbot运行,所有这些都是以“say”和“reply”的forms完成的。 我的一个testing看起来像这样。 […]

在浏览器中使用Webpack和mocha-loader从React应用程序运行Mocha规范

我有一个应用程序,我想在浏览器中运行它的mocha规格(unit testing)。 我发现这个SOpost,并试图将相同的想法应用到我的项目。 我想出了下面的webpackconfiguration文件: webpack.config.test.js const nodeExternals = require('webpack-node-externals'); const path = require('path'); const host = 'localhost'; const port = '8084'; module.exports = { target: 'web', externals: [nodeExternals()], entry: './specs/index.js', output: { filename: 'debug.bundle.js', path: path.join(__dirname, 'tests'), publicPath: `http://${host}:${port}/tests`, }, devServer: { host, port, }, module: { rules: [ { test: /\.js$/, loaders: ['react-hot-loader', 'babel-loader'], […]

如何使用摩卡在reactjs中testing这个asynchronous方法调用

// Balance.jsx … updateToken () { const parseResponse = (response) => { if (response.ok) { return response.json() } else { throw new Error('Could not retrieve access token.') } } const update = (data) => { if (data.token) { this.data.accessTokenData = data } else { throw new Error('Invalid response from token api') } } if (this.props.balanceEndpoint […]

“node –debug”和“node –debug-brk”是无效的

我已经更新了节点(v8.1.2)。 当我想使用NTVS在visualjs中debugging我之前的testing项目(在visual studio 2017中)时,我得到了以下错误: StandardError:(node:5292)[DEP0062] DeprecationWarning: node –debug和node –debug-brk无效。 请使用node –inspect或node –inspect-brk来代替。 问题很清楚。 该工具尝试运行node –debug – debugging以启动项目。 问题是,如何在Visual Studio 2017 node –inspect node –debug更改为node –inspect来运行testing? 另外,我应该提到,我不能通过在脚本参数中添加–inspect来解决问题。