>预启动
>开始
>列表
>测试
>等
我正在使用Selenium作为我的E2E框架.我有以下测试:
it('should launch a browser', () => {
const By = webDriver.By;
let driver = new webDriver.Builder()
.forBrowser('chrome')
.build();
// verify Continue button exist on page
driver.navigate().to('http://localhost:3000').then(() => driver.findElement(By.id('submitButton')).getAttribute('value'))
.then(buttonValue => expect(buttonValue).toEqual('Continue'));
});
如果我开始运行,我的网站会启动,我的E2E会启动一个额外的Chrome浏览器并导航到我的运行站点:localhost:3000.测试成功.
我的问题是,如何单独运行我的E2E,而不需要使用npm start来并排我的站点.
我是React和Selenium的新手,如果我在这篇文章中遗漏了很多信息,我会事先道歉.
好吧,既然你没有时间用NPM“脚本”对象来更新问题信息,那么我会试着在黑暗中试一试.首先,由于你的措辞,我可以用两种方式解释你的问题:
> a.)您希望单独运行您的E2E测试,无需运行您的服务器(通过npm start启动);
> b.)您希望通过npm start运行您的E2E测试,而不会触发您的服务器启动;
a.)如果你想单独运行脚本,看到你正在使用Mocha,那么你可以通过以下方式触发它们:./ node_modules / .bin / mocha< pathToTests> /< testFile>.
现在,既然你在问题中说你正在使用npm测试脚本,那么这应该是将你的E2E测试执行绑定到的最佳开关:
package.json(Scripts对象):
"scripts": {
"test": "mocha --reporter spec <pathToTests>/<testFile>",
"start": "node <yourServerName>.js"
},
请注意mocha< pathToTests> /< testFile>相当于./node_modules/.bin/mocha< pathToTests> /< testFile>,因为NPM在node_modules / .bin中查找二进制文件,当安装了Mocha时,它将它安装到此目录中.
Note: Many packages have a
bin, or.binsection, declaring scripts that can be called from NPM similar to Mocha. If you want to find out what other binaries you can run that way, just issue als node_modules/.bin.
b.)在这种关注中,我认为您的问题可能是由于NPM根据包内容默认某些脚本值.具体来说,如果你的软件包的根目录中有一个server.js文件,那么npm会将start命令默认为server.js.
因此,如果你是通过npm start开始你的E2E测试,在你的package.json中有这个(“开始”:“mocha< pathToTests> /< testFile>”)并且根目录中有一个server.js文件你的包,然后npm将默认启动命令到节点server.js.
在这种情况下,您可以将服务器脚本移动到项目中的其他位置,或者更改用于触发E2E测试的开关(请参阅b.部分).
希望这能解决你的问题,如果没有,期待那个package.json“脚本”对象,这样我们就可以真正看到了什么.
