我有一些与数据库交互的测试。我设置了测试代码,以便在每次测试之前/之后清除测试表。但是,这不适用于jest,因为它并行运行多个测试,所以它会启动另一个测试,在第一个测试运行时清除测试数据库
是否可以将jest设置为串行模式(无需编写自己的测试运行程序,这似乎很复杂)?Startjest使用CLI选项:
jest --runInBand
该选项会导致Jest
在当前进程中连续运行所有测试
有了这样的设置,第一次失败后不要错过。否则结果可能不可靠(成功或失败案例)
在node.js中,正如预期的那样,发送了一个POST响应(正如我用httpToolkit验证的那样)
但是在一个jest测试中执行同样的操作,axios首先发送一个选项请求。我正在运行的服务无法处理该问题(不是example.com)
是否有办法说服/配置jest或axios,使axios不会神奇地决定发送选项?这与CORS无关——它的服务器代码与服务器代码对话,但显然,axios中的某些东西决定了它是合适的。阅读本文,我的问题的解决方案就是下面的标题。看笑话。这个问题确实有很多关于不同关注点
我正在使用Gulp和Jest,我想知道是否有人找到了在控制台中对输出进行颜色编码测试的方法,类似于Karma中的记者。输出有点无聊,我希望它更容易阅读
"scripts":{ "test": "jest --colors" } //package.json
在运行jest时将参数--colors添加到命令中
我想在Jest测试代码中去掉全局变量。具体地说,描述,它和期望:
describe('Welcome (Snapshot)', () => {
it('Welcome renders hello world', () => {
...
});
});
因此,我试图补充:
import {describe,it} from 'jest';
及
和其他变化
但是没有运气
我应该如何让它工作?当我意识到Jest正在Node.js中运行时,它意识到我可以这样做:
let
标签: Jestjs
command-line-interface
jest--json--outputFile=tests.json没有生成tests.json文件,测试运行正常,所以前面没有问题。我有21.2.1版的笑话
我在候机楼得到这个:
请运行“npm安装”以使用用于此项目的Jest版本
根据--json--outputFile命令受版本18.0.0的支持,所以我认为版本没有问题
我正在用Jest和Puppeter做一些e2e测试,我遇到了瓶颈。
我想将步骤定义移动到单独的文件中,以便在不同的测试中重用它们
我遇到以下问题:
以下是我的设置:
文件dummyTest.test.js:
文件test.js:
我做错了什么?我解决了
为了使其工作,我必须将page对象和done回调传递给函数:
it( 'should see login page', ( done ) => loginUser( done, page ), 10000 );
export const
我在开玩笑地模仿一个被破坏的导入
组件中包含已销毁的导入:
import { getSomething } from 'utils/paymentUtils';
在测试中:
import React from 'react';
import { shallow } from 'enzyme';
import Component from 'components/Component';
import * as utils from 'utils/paymentUtils';
jest.mock
我在使用lint staged插件时遇到了一个奇怪的问题。早些时候它运转良好
所以问题是,当我运行npm运行测试时,它会生成覆盖率报告
“测试”:“跨环境CI=true反应脚本测试——覆盖率”
但是当我使用huskypre-commit和lint-staged运行相同的命令时,它不起作用。当我检查控制台时,我发现它正在针对已修改的文件运行
> portal@0.1.0 test /Users/carlos/Desktop/portal
> cross-env CI=true rea
我是tape.js的长期用户,我正在学习如何使用jest。我感兴趣的是为我的每个测试用例提供描述,作为断言的一部分,也就是这个磁带测试
函数mycoltest(t){
t、 相等(“蝙蝠侠”。长度,6,“蝙蝠侠应该有正确的字符数”);
t、 ok(1==1,‘基本真理应该保持真实’;
t、 deepEqual({test:1},{test:1},'deepequality of objects works sensible');
t、 end();
}
我喜欢能够对我的测试进行注释(例如“蝙蝠
标签: Jestjs
gitlab-cigitlab-ci-runnertestcase
我使用Jest测试mu nodejs代码,在提交代码之后,管道运行,Jest测试用例抛出错误,但管道没有失败。
在测试用例中,它显示并没有预期的结果,所以测试用例失败了,但并没有迫使gitlab管道失败。有什么帮助吗
✓ (10 ms)
✓ Test case for creating patient form testing (12 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots
我想跨多个子项目运行jest测试。为了做到这一点,我使用了,但我似乎缺少一些关于正确配置它的细节
你可以找到一个非常基本的回购协议来重现我的错误。您只需使用纱线或npm安装它,然后通过纱线测试(或npm运行测试)相应地运行唯一可用的脚本。结果是一组两个错误(每个子项目中的每个测试一个错误),都抱怨引用的.ts文件的语法
目前这个问题可以解决吗?我知道,但我不能肯定这是否100%相关
任何反馈都将不胜感激
我试图测试一个函数,它依赖于同一模块中的另一个函数。我想模仿第二种方法,我尝试的方法如下:
utils.js:
constbuildengine=()=>Engine';
const buildCar=()=>{
const engine=buildEngine();
返回发动机+'和'+'车身';
};
module.exports={
建筑引擎,
建筑车
};
utils.spec.js:
函数模拟模块(){
const original=require.requireActual('./
标签: Jestjs
enzymeoffice-ui-fabric
我正在使用Jest和酵素对我的应用程序进行单元测试。我以前是这样测试的:
const textFieldWrapper= shallow(<TextField label="Standard" />);
expect(textFieldWrapper.find('input').length).toEqual(1);
我想你是在找,而不是
Mount实际上完全呈现组件,而shallow只查看组件的内部属性,而不查看组件的内部属性
<ContextConsumer>
我在试着用木偶师写笑话测试
description('Downloads',()=>{
它(`should refirect to download page for ios`,async()=>{
等待page.setUserAgent(“外来”);
让响应=等待page.goto(`http://localhost:8888/downloads`,{waitUntil:“networkidle0”});
设url=page.url();
expect(response.status()).t
我在react功能组件中使用injectIntl来实现本地化。
我在用酶/笑话做单元测试。我已复制intl测试助手文件,但出现错误:
“TypeError:intlProvider.getChildContext不是函数”
我尝试了stackflow的其他建议:
1.删除模拟文件——我没有模拟文件
2.使用const{IntlProvider}=jest.requireActual(“react intl”);要强迫它使用实际的,而不是模拟的——不工作
react组件是:WarningModal
我有一个文件导出两个函数a和b,其中b调用a
我想模拟a测试,当我调用b时,它使用一些参数调用a,但是由于这两个函数在同一个文件中,我找不到任何方法来实现这一点
functions.js
export const a=(x)=>{一个非常复杂的函数};
导出常数b=(x)=>a(x+1);
functions.test.js
从“/functions”导入{a,b};
描述('b',()=>{
测试('调用b调用带有x+1的a',()=>{
const fakeA=//模拟函数a…不知道如何使
标签: Jestjs
create-react-appaws-amplifyts-jest
我需要在AWS amplify中为create react应用程序设置build pipeline。我找不到添加单元测试的代码片段,该单元测试使用Jest和react测试库以及typescript。你能分享一下有jest单元测试的amplify.yml吗。我在下面试过
version: 1
frontend:
phases:
preBuild:
commands: ['npm ci']
build:
comm
Github操作在项目中搜索package.json,但在与项目同名的文件夹中('/home/runner/work/javascript coding challenges/javascript coding challenges/package.json')。我没有package.json
Myjest.yaml
name: Run Jest tests
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
我正在用Jest编写单元测试,试图测试一个使用FS的模块
模块文件:
import fs from 'fs';
import logger from './logger.utils';
export const getNumberOfFiles = async (targetDir: string): Promise<number> => {
// get number of folders
logger.info(`getNumberOfFiles from ${t
我想测试一个非常简单的JS函数
export function displaySpinner() {
const loadingOverlayDOM = document.createElement('DIV');
const spinner = document.createElement('IMG');
loadingOverlayDOM.id = 'overlay-spinner';
loadingOverlayDOM.c
如果比较与预期不匹配,则大多数的expect(arg1).xxxx()方法将抛出异常。此模式的一个例外似乎是toMatchSnapshot()方法。它似乎从不抛出异常,而是存储故障信息以供以后的Jest代码处理
如何使toMatchSnapshot()引发异常?如果不可能,我们的测试是否有其他方法可以检测快照比较何时失败?如果您运行一个包含toMatchSnapshotmatcher jest的测试(例如/Foobar.test.js),默认情况下,第一次运行时会创建一个快照文件(例如/\uu快
我的组件具有以下计算代码:
textButton() {
const key = this.$root.feature.name === //...
// ...
},
现在我正拼命地在测试中模仿“根”,但我不知道怎么做。任何提示?您可以在测试中使用Vue插件将模拟数据注入localVue,以便您的组件可以访问它
import {createLocalVue, shallow} from '@vue/test-utils';
const localVue = createLo
我想用笑话来模拟指定的请求。例如:在一个方法中,我想模拟axios.get(uri_1).mockResolvedValue(resp),但我不想在同一个方法中模拟uri_2。在这种情况下我该怎么办?是语法上的糖分:
jest.fn().mockImplementation(() => Promise.resolve(value));
在您的情况下,添加一些条件逻辑可能就足够了。你甚至不需要开玩笑
import axios from 'axios';
const axiosGetOri
我需要访问子组件的实例:
const wrapper = shallow(
<Provider store={store}>
<CustomForm />
</Provider>
);
如果测试需要访问子组件的实例,则需要使用mount()而不是shallow()
如果根元素是使用类声明的(请注意),则不会执行完整的DOM呈现并为其创建实例,但不会为子组件创建实例
执行完整的DOM呈现,并为使用类声明的所有组件(根或子组件)创
我想测试handleKeyPress方法,但是当我模拟keyup时,我有一个错误:预期已经调用了spy,但没有调用它。
//App.js
componentDidMount(){
document.addEventListener('keyup',this.handleKeyPress)
}
handleKeyPress=(事件)=>{
如果(event.keyCode===38){
这是我的国家({
up:是的
})
}
}
//App.test.js
它('check handleKeyP
以下是测试节点代码(HapiJs端点)的实用程序函数(已授权)的Jest代码:
当执行此测试时。它给出了一个错误和跟踪点,指向函数抛出Boom.unauthorized('some error')的位置,实际上位于.unauthorized。这些痕迹一点用处都没有,至少对我没有
问题是测试一个函数的最好方法是什么,该函数在一个玩笑中抛出了Boom错误
依赖项包括:
"hapi": "^18.1.0",
"jest": "^24.1.0",
"babel-jest": "^24.1.0",
"
我希望在每次测试或测试运行开始时创建数据库表,以便1)所有迁移都针对测试数据库运行,或2)单个迁移设置所有表(更快)
有没有一种方法可以通过TypeORM轻松地实现自动化,这样我就不需要手动维护测试数据库的副本了?当然,在测试结束时,需要进行相反的拆卸和表格清理
目前,我的测试失败:
● User › GET /users › should return an array of users
QueryFailedError: relation "user" does not exist
标签: Jestjs
babeljses6-modulesbabel-jest
我使用BabelJest来传输我的代码以进行测试。
我无法获得如何使用相对于项目根的路径
例如,如果在一个测试文件中,我导入了一个模块:/imports/ui/myModuleJest会抛出一个错误
Cannot find module
'/Users/me/dev/myProject/Users/me/dev/myProject/imports/ui/myModule' from 'test.jsx'`
但是,如果我导入一个具有如下相对路径的模块:。/../ui/myModule,它会工作
我希望同时运行Jest测试,但有一个场景存在问题:
我在一个端点上测试结果,我想测试它的多个方面。因此,在beforeAll函数中,我发出请求并存储响应,然后在多个测试中测试响应。这可以很好地同步工作,但是当我使测试并发时,它不再允许您将变量传递到测试中,因此这是不可能的。或者,我可以将请求放在测试本身中,然后对响应进行许多预期,但是如果某个响应失败,我没有足够的粒度来查看出了什么问题
对于这种情况有什么解决方案吗
这项工作:
let data;
beforeAll(async () =>
我想与MonggoDB进行集成测试。
我用玩笑和猫鼬
我的代码有时通过,有时不通过。
我将搜索两天,并修改代码。但这并不能解决问题
我目前只有两个测试文件:
这是我的回购协议:
这是因为在填充数据库时测试文件之间存在冲突。通过创建每个测试文件的文档的唯一名称来解决。并按其名称删除文档
单击提交按钮时,我使用下一个代码检查请求和响应:
const postRequestInfo = await Promise.all([
page.waitForRequest(
request =>
request.url() === 'https://httpbin.org/status/200' && request.method() === 'POST'
),
我有一个测试如下:
expect(result.data.quota).toBeInstanceOf(Number);
此测试失败,出现一个奇怪的错误,表示预期有一个数字,但收到了一个数字:
expect(value).toBeInstanceOf(constructor)
Expected constructor: Number
Received constructor: Number
Received value: 2000
expect(value.not.
我使用jest.js编写测试套件。以下是示例:
description('testsuites',()=>{
让用户;
beforeach(异步()=>{
user=await userSerivce.getUserById('1');
如果(!用户){
console.info('未找到用户。跳过所有测试用例');
//中断;
}
});
如果(用户){
它('t-1',()=>{
/**/
});
它('t-2',()=>{
/**/
});
}
});
我想跳过所有测试用例,并在找不到用
标签: Jestjs
puppeteerjest-puppeteer
我想在jest Puppeter中运行用于UI自动化的特定测试套件。
我能够使用下面的命令运行特定的测试
jest-t测试名称
其中test_名称来自“it”,而不是不带引号的“descripe”
是否还有其他cmd来运行“描述”下的所有测试 运行与此规范名称匹配的测试(基本上与descripe或test中的名称匹配)
jest -t name-of-it
jest -t "name-of-describe"
当我想要模拟一个文件。/a.tsx时,我必须创建一个文件\uuumocks\uuuuuuuu/a.tsx。但我想将文件名设置为类似于./a.mock.tsx
所以我在测试文件中使用这个模式
jest.mock('./a', () => require('./a.mock'));
但这很不方便,所以有没有类似snapshotResolver或testRegex的配置?感谢阅读:DJest目前没有为模拟正则表达式模式提供任何解析器配置。您可以做的是创建自己的自动模拟类,正如它们在中所解释的那
我看到,在每次测试之前运行一些代码时,有两个配置选项可供选择:setupFiles和setupfileafterenv。在我看来,setupfileafterenv提供了更大的灵活性(我可以使用jest,beforeach等等…),所以我不知道在什么环境下setupFiles会更有用。是否有人可以提供一个示例,说明您需要使用setupFiles而不是setupfileafterenv
文档:我们可以从文档中看到setupFiles和setupFiles afterenv之间的区别
最重要的区别可
我正在测试一个自定义钩子,它只返回gatsby中的graphql数据。
这是我到目前为止得到的,但它给了我一个错误
钩子使用MyData
import { useStaticQuery, graphql } from 'gatsby';
export default () => {
const {
content: { data },
} = useStaticQuery(graphql`
query myQuery
标签: Jestjs
puppeteerjest-puppeteer
在一个工作笑话+木偶表演项目中,
我要搬到开玩笑的马戏团去,以便能利用这个机会。
如文件所述,我安装了jest circus,并设置为runner,但像往常一样运行测试
Validation Error:
Preset jest-puppeteer is invalid:
The "id" argument must be of type string. Received type object
TypeError [ERR_INVALID_ARG_TYPE]: The "id
我甚至尝试过给出类名,删除div并将其添加回去。有人能帮忙吗?
//第1.js页
<div className="email" >
<MyInput className="input1" name="email" type="email" onChange={formikProps.handleChange}/>
</div>
//Page1.te
我使用Apollo BoostMockedProvider,Jest and React测试库进行了一个工作测试,当我将返回的字段更改为graphQL片段时,它停止工作。我错过了什么
ticketql.js
导出默认类ticketql{
静态视图_片段=gql`
片段视图视图上的片段{
视图ID
版本
名称
描述
有序列{
柱状体
名称
描述{
翻译ID
朗
描述
}
}
}
`;
静态获取票证视图=gql`
查询getView($viewId:ID!){
视图(视图ID:$viewId){
视
如何将jest测试配置为在出现警告时失败
console.warn('stuff');
// fail test
我最近使用v19.0.0中引入的warn方法来模拟console(通过global上下文/对象访问)
然后可以期望模拟的警告未被调用,如下所示
describe('A function that does something', () => {
it('Should not trigger a warning', () => {
var warn = jes
我很难模拟一个简单的依赖生成器函数
//generatorFunction.js
export default ()=>({execute: (arg1)=>Promise.resolve(arg1)})
//actualFunction.js
import generate from 'generatorFunction'
export default (arg1)=>generate(arg1)
//actualFunction.test.js
import actua
假设我有一个文件file1.js,其中包含:
const a = true;
let b;
if (a) {
b = c;
}
if (!a) {
b = d;
}
现在,当我在这个文件上运行测试用例时,我的第一个条件就被覆盖了。是否有任何方法可以通过将a设置为false来覆盖第二个条件,或者我是否应该更改代码,以便调用具有不同值的方法来测试每种情况,例如:
const a = true;
getBVal(a) {
return a ? c : d;
}
let b
我正在使用Jest为NodeJS编写单元测试。
我的一部分代码使用process.exit(1)退出,因此当尝试使用Jest测试它时,当到达此行时,测试终止,错误命令失败,退出代码为1。这是process.exit(1)的默认行为
谁能告诉我如何使用Jest来处理这个场景并继续进行其他测试吗?我认为,抛出一个错误会为您提供一个更易于维护和测试的代码。比如:
if (err) {
throw new Error("Some relevant error msg")
}
如果您坚持使用proc
标签: Jestjs
jest-preset-angular
来自Karma,我喜欢打开一个浏览器选项卡,不时检查测试的代码覆盖率。使用jest是否可以生成覆盖率文件夹,而不在控制台中打印覆盖率
我还没有找到任何有关此的cli或配置。您可以为类似这样的笑话设置coverageReporters配置:
jest.config.js:
module.exports={
// ...
封面传送器:['json','lcov','clover']
};
默认情况下,coverageReporters配置的值是[“json”、“lcov”、“text”、“clov
标签: Jestjs
aws-sdk-nodejsssmaws-parameter-storeaws-sdk-mock
我试图用下面的代码使用AWS sdk模拟AWS SSM,但不起作用。不抛出错误,在调用getParametersByPath时从实际存储中获取值
我看过aws sdk模拟文档,但似乎没有模拟ssm的示例,它是否受支持
AWSMock.mock('SSM', 'getParametersByPath', (params, callback) => {
callback(null, mockResponse);
});
我在尝试执行类似操作时遇到了这个问题:当尝试模拟SSM功能时,资源仍
有没有办法每次Jest的watch脚本触发时都运行ESLint?我想用-fix my files自动生成watch脚本lint。您可以使用jest runner eslint plugin来完成您所描述的操作
我正在控制器中使用lodash/deep函数。对控制器执行jest测试时,会出现以下错误:
所有lodash函数都会给出错误
TypeError:cloneDeep_1.default不是函数
下面是示例代码
import cloneDeep from 'lodash/cloneDeep'
static transformBoardBasicInfo (rawBoard:any): any {
const clonedBoard: any = cloneDeep(rawBoard) a
我有一个Demo.tsx文件,其代码如下:
const aRef = useRef() as RefObject<HTMLDivElement>;
const bRef = useRef() as RefObject<HTMLDivElement>;
const a = 10;
const b = 10;
useEffect(() => {
if (!!aRef.current && !!bRef.current) {
const tem
标签: Jestjs
react-testing-library
我试图测试waitFor的说法,但当我使用承诺时,回调不会再次运行,即使它被拒绝
waitFor可能会多次运行回调
如果您有模拟API调用和
你需要等待你的假承诺全部解决
如果在waitFor回调中返回承诺(显式或
隐式地使用异步语法),则waitFor实用程序将不会调用
你再回电话,直到承诺被拒绝。这允许您
等待必须异步检查的内容
@EstusFlask你什么意思?不会复制我的问题?我专门运行了这段代码,我遇到了上面的问题。我的意思是其他人(不是你)可能无法复制它。我专门运行了这段代码,它按照
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 19 页