programing

Angularjs Protractor에서 명령줄 인수를 사용하려면 어떻게 해야 합니까?

muds 2023. 3. 27. 21:44
반응형

Angularjs Protractor에서 명령줄 인수를 사용하려면 어떻게 해야 합니까?

Protractor를 사용하여 몇 가지 엔드 투 엔드 테스트를 수행하려고 하는데 특정 파일에 저장하지 않고 명령줄에서 로그인 자격 증명을 전달하고 싶습니다.누군가가 쓰던 게시물을 하나 찾았어요.process.argv.forEach그러나 이러한 값을 저장하여 다른 사양 파일에 사용하려면 어떻게 해야 합니까?라는 파일이 있습니다.login-spec.js명령줄 인수를 사용합니다.

감사합니다!

참조 설정에서는, 이 섹션이 흥미로울 수 있습니다.

  // The params object will be passed directly to the protractor instance,
  // and can be accessed from your test. It is an arbitrary object and can
  // contain anything you may need in your test.
  // This can be changed via the command line as:
  //   --params.login.user 'Joe'
  params: {
    login: {
      user: 'Jane',
      password: '1234'
    }
  },

또한 코드 내에서 다음과 같은 params 객체에 액세스할 수 있습니다.browser.params.login.user

이 경우, 다음과 같이 프로젝터를 호출할 수 있습니다.

protractor ... --params.login.user=abc --params.login.password=123

코드내의 다음의 변수에 액세스 할 수 있습니다.

browser.params.login.user그리고.browser.params.login.password

승인된 답변의 단점 - 이러한 변수는 브라우저를 시작할 때 사용할 수 있습니다.따라서 구성(if/else 로직 생성)에서 이러한 로직을 사용하는 경우 이 기능은 작동하지 않습니다.

회피책

프로젝터는 노드 프로세스입니다.모든 노드 프로세스는 커스텀노드 변수를 사용하여 시작할 수 있습니다.Windows 에서는 어떻게 동작하고 있는지는 잘 모르지만(그 방법을 알고 있는 경우는 코멘트해 주세요), Mac 및 Linux/unix OS 에서는 할 수 있습니다.

다음과 같은 환경 변수를 사용하여 프로젝터를 시작합니다.

MY_VAR=Dev protractor tmp/config.js

그러면 프로세스 내 어디에서나 사용할 수 있습니다.

console.log(process.env.MY_VAR)

언급URL : https://stackoverflow.com/questions/23135649/how-can-i-use-command-line-arguments-in-angularjs-protractor

반응형