我是柏树的新手,喜欢它的架构方式 . 但是,我似乎很早就遇到了一个问题,我正在努力做一件非常简单的事情 .
我的工作流程是:1)访问网站2)输入用户名和密码3)在下一个屏幕上,键入一个数字并按提交,4)在下一个屏幕上,从下拉列表中选择一个值,然后按Enter键 . 5)我到达我网站的登陆页面 .
赛普拉斯完全没问题,直到第4步 . 它似乎在第5步停止 . 测试运行器突然停止并且没有警告或错误,显示“哎呀,没有运行测试 . ”
从这里,当我点击“查看所有测试”按钮时,它会转到跑步工具 . 在那里,我看到有迹象表明事情仍然在后台运行 . 我试着等了10多分钟,但在点击“停止”动作之前没有任何反应 .
我该如何调试?我可以通过任何日志等查看发生了什么吗?
我的网站甚至可能出现问题,但没有任何日志信息,我无法继续进行 . 任何帮助表示赞赏 .
为了提供更多的上下文,我不认为这是一个基于超时的问题,就好像是这样,cypress确实向我报告了这个并停止了 . 然后我增加了超时 .
我的spec文件
describe('My first test', function() {
it('Visits home page', function() {
cy.visit('https://mywebsite.com:5800', {timeout: 400000}, {pageLoadTimeout: 400000}, {defaultCommandTimeout: 400000})
cy.get('#USERNAME').type('myusername')
cy.get('#PASSWORD').type('mypassword')
cy.get('#loginbutton').click()
cy.get('#SOMELEMENT_WHERE_I_TYPE_A_UNIQUE_NUMBER').type('8056')
cy.get('#loginbutton').click()
cy.get('#loginbutton').click()
})
})
谢谢 .
1 回答
如果在最初打开赛普拉斯时从终端运行DEBUG=cypress:* cypress open,则在运行测试时会打印更多调试日志信息 .
此外,项目的search the issues总是一个好主意,看看是否还有其他人发生过这种情况 .
出于某种原因,赛普拉斯自动化进入一种认为您没有spec文件的状态 . 赛普拉斯所做的一切都是determine this is to see if there is a location.hash defined on the main window - >通常所说的
https://localhost:2020/__/#tests/integration/my_spec.js
.可能这是由于应用程序中的安全机制阻止您的应用程序在iframe中运行(这是赛普拉斯运行所有被测试应用程序的方式) . 也许在你的应用程序代码中它是这样的:
您可以在测试时简单地禁用这些检查,或者在赛普拉斯中,您可以添加到测试文件(或支持文件以使其适用于每个测试文件):