我一直在和 Intern 一起玩,并让我的测试在浏览器中运行。为了更好地与我当前的工作流程集成,我正在尝试通过带有 phantomjs 的 grunt 运行我的测试。然而我所有的尝试都失败了。我一直将这个问题作为Intern WebDriver 和 PhantomJS的参考,但无法弄清楚使其工作的所有步骤。
首先:甚至可以通过 grunt 和 phantomjs 运行测试吗?
一点信息:
- 我不想/不能连接到 Sauce Labs 或 Selenium 测试环境。
- 我想测试浏览器代码,同时将 jQuery 作为填充依赖项
- 我安装了 Grunt 0.4.1 和 phantomjs 1.9.1
- 我没有测试任何 ajax 请求(因为链接的问题有问题)
- 我对 Selenium 和 Sauce Lab 都不熟悉
如果可以通过 grunt 和 phanomjs 进行测试,我将如何去做呢?
我想我必须启动 GhostDriver
phantomjs --webdriver=8910
但是,实习生配置中的重要信息是什么?
define({
proxyPort: 9000,
proxyUrl: 'http://localhost:9000/',
environments: [
{
browserName: 'phantom',
version: '1.9.0',
platform: 'Linux'
}
],
webdriver: {
host: 'localhost',
port: 8910
},
maxConcurrency: 3,
useSauceConnect: false,
// ...
});
环境 browserName 如何映射到 phantomjs?我已经尝试了具有不同版本和平台的 browserNames 'phantom' 和 'phanomjs'(运行 Mac 10.7)
我的实习生 Gruntfile 部分如下所示:
intern: {
phantom: {
options: {
config: 'tests/intern',
reporters: ['webdriver']
}
}
}
在没有任何包含浏览器代码输出 ' ReferenceError: document is not defined
' in ' node_modules/intern/lib/reporters/webdriver.js:41:19
' 的测试套件的情况下运行此设置
添加浏览器测试会ReferenceError: window is not defined
在 ' ' 中提供 ' src/vendor/jquery/jquery-1.9.1.js:9597:5
'
通过节点运行它会产生相同的“ window is not defined
”错误。
node node_modules/intern/client.js config=tests/intern
我在这里做错了什么/错过了什么?