我正在使用TypeScript、Jest和ts-jestNPM模块编写一个项目。当我运行测试时,我确实得到了一些覆盖率,但HTML报告不太正确:此外,一些函数被标记为未经测试,即使它们确实被调用了。我的package.json设置如下:{"jest":{"transform":{".(ts|tsx)":"/node_modules/ts-jest/preprocessor.js"},"testRegex":"(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$","moduleFileExtensions":["ts","tsx","js"],"t
测试组件我正在尝试使用Jest对react组件运行一些非常简单的测试。由于组件文件顶部的这一行,我遇到了问题import{}from'./style.less';这里的导入不需要测试,最好从测试中忽略。[npm测试]的结果当通过npmtest运行测试时,我得到响应FAILtests/app_test.js●RuntimeErrorSyntaxError:Unexpectedtoken{infile'client/components/app/style.less'.Makesureyourpreprocessorissetupcorrectlyandensureyour'preproc
是否可以在Jest中运行在所有其他测试完成后运行的清理或拆卸任务?类似于setupFiles允许在任何测试运行之前设置任务的方式。如果无论测试是否有任何错误,它也可以运行,则可以加分。将afterAll(()=>{})放在文件的顶层(在任何describe函数之外)似乎只会在该特定文件的测试完成后运行。用例是我有许多测试文件将在开发数据库中创建用户,我不想让每个测试文件负责清理和删除用户之后。编写测试时也可能发生错误,因此如果不管错误如何都发生清理,那将是更可取的。 最佳答案 setupFiles有一个兄弟钩子(Hook),它会在每
什么时候适合使用--runInBand中的每一个?或--maxWorkers1选项?如果我的意图是按顺序运行所有测试(一次一个,按顺序),那么哪个是正确的选择?额外细节:我正在使用Jest测试NodeJsexpress应用程序,集成测试通过supertest访问HTTP端点.这可能对答案没有任何影响,只是在相关的情况下提及。这是JestCLI引用:https://facebook.github.io/jest/docs/cli.html相关部分:--maxWorkers=别名:-w。指定工作池为运行测试生成的最大工作人员数。这默认为您机器上可用的内核数。在CI等资源有限的环境中调整此设
我尝试为React.js应用程序编写测试。一切都很顺利,但是在用Git跟踪目录之后(用它做了一个Gitrepo)。测试失败并出现以下错误2017-01-1505:05node[1278](FSEvents.framework)FSEventStreamStart:register_with_server:ERROR:f2d_register_rpc()=>(null)(-22)2017-01-1505:05node[1278](FSEvents.framework)FSEventStreamStart:register_with_server:ERROR:f2d_register_rp
运行Jest时收到以下错误Cannotfindmodule'src/views/app'from'index.jsx'atResolver.resolveModule(node_modules/jest-resolve/build/index.js:179:17)atObject.(src/index.jsx:4:12)index.jsximportAppContainerfrom'src/views/app';package.json"jest":{"collectCoverageFrom":["src/**/*.{js,jsx,mjs}"],"setupFiles":["/conf
在macOS上运行dockermhart/alpine-node:8nodejs(6.10.3-r0)(18/18)yarn0.24.6jest20.0.4但是,在运行代码时,我有一个__tests__/index.test.js文件node_modules/.bin/jest--watchAll我得到以下输出NotestsfoundIn/usr/src/app5fileschecked.testMatch:/__tests__//*.js?(x),**/?(*.)(spec|test).js?(x)-1matchtestPathIgnorePatterns:/node_modules
我正在尝试这个:expect(AP.require).toBeCalledWith('messages',()=>{})其中AP.require是一个模拟函数,它应该接收一个字符串和一个函数作为第二个参数。测试失败并显示消息:Expectedmockfunctiontohavebeencalledwith:[Functionanonymous]asargument2,butitwascalledwith[Functionanonymous] 最佳答案 要断言任何函数,您可以使用expect.any(constructor):所以你的
jest.resetModules()清除所有模块的require缓存,但有没有办法只为单个模块清除它?无法使用require.cache,因为Jest似乎绕过了它。我正在测试一个有状态的Node模块(即它依赖于对require的多次调用返回相同实例的事实)。对于我的测试,我需要重置模块的状态以测试不同的场景。jest.resetModules()有效,但我需要重新require其他一些不需要重置的模拟模块。 最佳答案 正如问题中所解释的,jest.resetModules()重置模块缓存,这对您的模块保持某些本地状态并且您希望在测
有没有办法用jest@20测试匿名函数的相等性?我正在尝试通过类似于以下内容的测试:constfoo=i=>j=>{returni*j}constbar=()=>{baz:foo(2),boz:1}describe('Testanonymousfunctionequality',()=>{it('+++foo',()=>{constobj=foo(2)expect(obj).toBe(foo(2))});it('+++bar',()=>{constobj=bar()expect(obj).toEqual({baz:foo(2),boz:1})});});目前产生:●>>>Testano