NAU*_*HAD 5 typescript e2e-testing react-native detox metro-bundler
我正在使用打字稿遵循排毒模拟指南。该应用程序始终打印X.ts文件的 console.log 而不是X.e2e.ts文件。
依赖版本。
react-native: 0.61.5,
detox: 16.4.0
Run Code Online (Sandbox Code Playgroud)
地铁配置:
"detox": {
"test-runner": "jest",
"runner-config": "e2e/config.json",
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/App.app",
"build": "RN_SRC_EXT=e2e.js,e2e.ts xcodebuild -workspace ios/App.xcworkspace -scheme 'App Test' -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"device": {
"type": "iPhone 11"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
地铁配置.js
const defaultSourceExts = require("metro-config/src/defaults/defaults").sourceExts;
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false
}
})
},
resolver: {
sourceExts: process.env.RN_SRC_EXT ? process.env.RN_SRC_EXT.split(",").concat(defaultSourceExts) : defaultSourceExts
}
};
console.log("default", defaultSourceExts);
console.log("module.exports from e2e", module.exports);
/** above console results into the following
default [ 'js', 'json', 'ts', 'tsx' ]
module.exports from e2e { transformer:
{ getTransformOptions: [AsyncFunction: getTransformOptions] },
resolver: { sourceExts: [ 'e2e.ts', 'js', 'json', 'ts', 'tsx' ] } }
*/
Run Code Online (Sandbox Code Playgroud)
/src/AppEvent.js
const logEvent = (): void => {
console.log("from non-test event file");
};
export default {
logEvent
};
Run Code Online (Sandbox Code Playgroud)
/src/AppEvent.e2e.ts
const logEvent = (): void => {
console.log("from test event file");
};
export default {
logEvent
};
Run Code Online (Sandbox Code Playgroud)
当我运行detox build && detox testMetro 服务器时不记录 e2d 文件,所以我必须使用单独运行 MetroRN_SRC_EXT=e2e.js,e2e.ts yarn start
小智 0
我也尝试过这种方法,但它比测试更多的是样板,请查看:https: //www.npmjs.com/package/10mock您可以在此处查看示例代码: https: //github.com/10play/10mock-示例应用程序
| 归档时间: |
|
| 查看次数: |
1267 次 |
| 最近记录: |