【发布时间】:2018-08-29 20:03:53
【问题描述】:
我正在尝试在终端中为内部使用 History API 的应用程序库运行自动化单元测试。我正在使用 Babel 将我的单元测试(使用 Mocha/Chai/Sinon 编写)转换并合并到单个测试文件中。然后,我在 Headless Chrome 中打开一个本地 HTML 文件(包括该测试文件)以运行测试。这一切都很好。
当 Headless Chrome 抛出错误时,我第一次遇到麻烦,因为我在本地文件上使用 History API 的 pushState 方法。确切的错误信息是:
错误:无法在“历史”上执行“pushState”:无法在原始文档中创建 URL 为“file:///C:/code/projects/app/test/foo”的历史状态对象null' 和 URL 'file:///C:/code/projects/app/test/runner.html'。
所以,我安装 gulp-connect 来运行本地服务器,该服务器在 gulp 任务开始时启动并在任务结束时关闭(我不想要持久连接)。我重新配置一切以通过服务器工作,当我运行 Gulp 任务时,之前的错误消失了。
问题是终端不再打印单元测试的结果。 Gulp 告诉我任务开始和结束,但没有别的。即使我故意添加一个会失败的测试,它也会给人一种测试通过的印象。
知道这里发生了什么吗?我认为这将是一个非常直接的过渡,这让我相信我在做一些愚蠢的事情(很常见)。如果 Gulp 解决了这个问题,我不反对离开 Gulp(例如转向 NPM 脚本)。最终目标是让它成为一个自动化的过程,我可以手动运行,Travis CI 可以在每次推送到公共存储库时运行。
【问题讨论】:
标签: javascript unit-testing gulp html5-history