Protractor 如何知道在量角器中运行测试时使用的基本url?
我正在尝试在量角器中进行导航测试,但没有发现与配置中的baseUrl和测试中使用的url有任何一致性 progrator.conf.jsProtractor 如何知道在量角器中运行测试时使用的基本url?,protractor,angular-cli,e2e-testing,Protractor,Angular Cli,E2e Testing,我正在尝试在量角器中进行导航测试,但没有发现与配置中的baseUrl和测试中使用的url有任何一致性 progrator.conf.js exports.config = { baseUrl: 'http://localhost:4200/' } 导航栏e2e-spec.ts import { NavbarPage } from './navbar.po'; import * as protractor from './../protractor.conf.js'; describe('n
exports.config = {
baseUrl: 'http://localhost:4200/'
}
导航栏e2e-spec.ts
import { NavbarPage } from './navbar.po';
import * as protractor from './../protractor.conf.js';
describe('navbar', () => {
let navbar: NavbarPage;
const baseUrl = protractor.config.baseUrl;
beforeEach(() => {
navbar = new NavbarPage();
browser.get('/');
});
it(`should see showcase nav item, be able to (click) it,
and expect to be navigated to showcase page`, () => {
const anchorShowcase = navbar.anchorShowcase;
expect(anchorShowcase.isDisplayed()).toBe(true);
anchorShowcase.click();
browser.waitForAngular();
expect(browser.getCurrentUrl()).toBe(baseUrl + '/showcase');
});
});
虽然当我运行e2e测试时,它使用不同的端口:
** NG Live Development Server is listening on localhost:49154, open your browser on http://localhost:49154/ **
为什么测试url设置为端口49154。如果启动新的angular cli项目,这显然是默认设置:
如何控制baseUrl/或is
http://localhost:49154/
可安全用于所有angular cli项目?运行angular cli的ng e2e
命令时,它会在wiki中声明默认端口将是随机的,如下所示:
在服务
子菜单下
e2e
命令可以接受与service
相同的所有参数,因此要保持端口不变,只需将--port my port number
传递给ng e2e
命令即可
只要该端口使用安全,我就不会使用它,毕竟它只是一个随机端口。我会坚持使用默认值,除非您有更改它的用例。端口主要与开发服务器相关,与生产代码的运行位置无关。默认情况下,当您执行
nge2e
时,命令take--service
值为true
。这意味着它将在特定的URL中构建并服务于此。不是您传入的baseUrldragrator.conf.js
这就是为什么在测试你的应用程序时,你会得到一个随机的URL,比如http://localhost:49154/
现在,您不希望在测试期间生成,而是希望测试现有的生成(URL),如http://localhost:4200/
您需要在命令行中传递--no-serve
,它将从dragrator.conf.js
您还可以在命令行中传递baseUrl
,如下所示。请注意,这不是baseUrl
,而是--base href=
ng e2e --no-serve --base-href=https://someurl.com:8080
Aniruddas的解决方案不再有效,因为Angular CLI 6.x版本中没有此选项,您可以尝试以下操作-
ng e2e --dev-server-target=
请看下面