我最近从摩卡咖啡转到了Jest。除了始终运行所有测试的监视模式以外,其他所有功能都正常运行(不仅是文档中所说的与未提交文件相关的测试)。我已经搜索了文档,并使用了google,但没有找到有关此问题的任何信息。
我开玩笑的配置是
"jest": {
"coveragePathIgnorePatterns": [
"/node_modules/",
"/generated/",
"/mock/",
"/tools/",
"/transactions/"
],
"coverageThreshold": {
"global": {
"branches": 90,
"functions": 90,
"lines": 90,
"statements": 90
}
},
"resetMocks": true,
"moduleDirectories": [
"node_modules",
"src"
],
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/src/__mocks__/fileMock.js",
"\\.(css|less|scss)$": "<rootDir>/src/__mocks__/styleMock.js"
},
"setupTestFrameworkScriptFile": "<rootDir>/tools/setupTest.js"
},
Run Code Online (Sandbox Code Playgroud)
该setupTestFrameworkScriptFile
只包含一行:
require('babel-polyfill');
Run Code Online (Sandbox Code Playgroud)
Babelrc:
"env": {
"test": {
"plugins": [
"rewire",
"transform-class-properties",
"transform-es2015-modules-commonjs"
],
"presets": [
"es2017",
"react",
"stage-0",
"es2015"
]
}
}
Run Code Online (Sandbox Code Playgroud)
我从开始测试,jest --watch
并显示消息“确定要运行的测试套件”,但是即使没有提交任何文件,也将运行所有测试。
我在Windows 7上,并且在powershell中运行命令。节点版本:v6.9.1
Jest版本:"babel-jest": "20.0.3"
, …
我有一个 Chrome 扩展程序,可以(如果您允许访问文件 URL)抓取您在 Chrome 中打开的本地 pdf 文件,并将其发送到我们的 API 进行处理。这是通过从后台脚本中使用XMLHttpRequest
to获取 pdf 来完成的。file:///Users/user/whatever/testfile.pdf
当 Chrome 扩展迁移到清单 v3 时,后台脚本将成为服务工作人员。在 Service Worker 中 onlyfetch
可用,而不是XMLHttpRequest
. 问题是,fetch 仅支持 http 和 https,不支持 file:// url。那么我怎样才能实现让 Chrome 扩展获取/获取本地文件的相同功能呢?
编辑:我也尝试过的事情:
按照答案的建议,从注入的 iframe 中制作 XMLHttpRequest。net:ERR_UNKNOWN_URL_SCHEME
这在发出请求时
会出错
从注入的内容脚本制作 XMLHttpRequest。这给出了错误Access to XMLHttpRequest at 'file:///.../testfile1.docx.pdf' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.
据我从大量研究中了解到,访问file://
通常被阻止,Chrome 扩展后台脚本曾经是一个例外。在我看来,内容脚本或操作弹出窗口从来不允许这样做。 …