在使用 Selenium 框架和 Mocha 的常规测试的同时,我如何 运行 在浏览器上下文中进行测试?
How can I run tests in a browser context along side my regular tests that use a Selenium framework and Mocha?
我在 Mocha 中使用 Nemo 到 运行 Selenium 测试,它工作得很好,因为 Nemo 只是作为一个模块工作,我将其导入到我的测试中并且可以 运行 只是做
mocha tests/*.js
但是我有一些函数想在我的 Selenium 测试的同时进行单元测试,这些函数使用 DOM 函数,例如 document.createElement,所以我需要 运行 它们在一个浏览器上下文。我研究过为此使用 PhantomJS,但我找不到任何使用 PhantomJS 作为模块(如 Nemo)的答案,而是要求你做类似
的事情
phantomjs tests/*.js
有什么方法可以将 Phantom 导入到我的常规测试中,并将其作为模块而不是在命令行上使用吗?或者也许我只是以错误的方式接近这个?
本质上,PhantomJS 不提供将其作为模块要求的方法(您也可以在 FAQ 中找到)。
的确,有一个名为 phantomjs-node 的节点模块,它将在 phantomjs 和您的单元测试之间架起一座桥梁。
这个模块基本上会产生一个 phantomjs 实例,执行你的测试并将结果传递给你的单元测试,这样你就可以断言它们了。
我在 Mocha 中使用 Nemo 到 运行 Selenium 测试,它工作得很好,因为 Nemo 只是作为一个模块工作,我将其导入到我的测试中并且可以 运行 只是做
mocha tests/*.js
但是我有一些函数想在我的 Selenium 测试的同时进行单元测试,这些函数使用 DOM 函数,例如 document.createElement,所以我需要 运行 它们在一个浏览器上下文。我研究过为此使用 PhantomJS,但我找不到任何使用 PhantomJS 作为模块(如 Nemo)的答案,而是要求你做类似
的事情phantomjs tests/*.js
有什么方法可以将 Phantom 导入到我的常规测试中,并将其作为模块而不是在命令行上使用吗?或者也许我只是以错误的方式接近这个?
本质上,PhantomJS 不提供将其作为模块要求的方法(您也可以在 FAQ 中找到)。
的确,有一个名为 phantomjs-node 的节点模块,它将在 phantomjs 和您的单元测试之间架起一座桥梁。
这个模块基本上会产生一个 phantomjs 实例,执行你的测试并将结果传递给你的单元测试,这样你就可以断言它们了。