Protractor 如何知道在量角器中运行测试时使用的基本url?

Protractor 如何知道在量角器中运行测试时使用的基本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

我正在尝试在量角器中进行导航测试,但没有发现与配置中的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('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中构建并服务于此。不是您传入的baseUrl
dragrator.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=
请看下面