Testing 使用Metamask进行测试的Cypress测试方法
我想测试我的应用程序如何与Metamask交互(例如钱包打开了吗?),并创建一个灵活的测试配置,使我能够通过“挂载”Metamask界面访问应用程序,其方式与Assert JS(2018)讲座视频中普通的“登录”方式类似(我使用MM有效登录),如: 使用Cypress测试Metamask是否有参考资料或建议?Cypress提供了以下用于加载Chrome扩展插件的文档:Testing 使用Metamask进行测试的Cypress测试方法,testing,cypress,metamask,Testing,Cypress,Metamask,我想测试我的应用程序如何与Metamask交互(例如钱包打开了吗?),并创建一个灵活的测试配置,使我能够通过“挂载”Metamask界面访问应用程序,其方式与Assert JS(2018)讲座视频中普通的“登录”方式类似(我使用MM有效登录),如: 使用Cypress测试Metamask是否有参考资料或建议?Cypress提供了以下用于加载Chrome扩展插件的文档: module.exports = (on, config) => { on('before:brows
module.exports = (on, config) => {
on('before:browser:launch', (browser, launchOptions) => {
// supply the path to an unpacked WebExtension
// NOTE: extensions cannot be loaded in headless Chrome
launchOptions.extensions.push('/path/to/webextension')
return launchOptions
})
}
但除此之外没有其他帮助。一旦加载,我将如何与之交互以生成有意义的测试?
我希望这是可能的。我看到其他人已经考虑了这些问题,我已经在MM github上发布了这个问题:
thx…根据:
您无法轻松地使用Cypress测试扩展或与扩展交互
作为一种解决方法,我使用了木偶演员和Cypress来实现这一点
您加载扩展的示例是正确的。您可以在此处看到我的方法,它在加载到浏览器之前下载最新的元掩码版本:
但是,在这样做之前,请记住以下几点:
cypress.json
config中使用“chromeWebSecurity”:true
,否则metamask将无法与DAPP一起正常工作,并且存在连接问题。
Cypress run--headed
)。Headless不适用于扩展module.exports = (on, config) => {
on('before:browser:launch', async (browser = {}, arguments_) => {
if (browser.name === 'chrome') {
arguments_.args.push('--disable-background-timer-throttling');
arguments_.args.push('--disable-backgrounding-occluded-windows');
arguments_.args.push('--disable-renderer-backgrounding');
}
}