prosource

Grunt를 통한 Yooman과의 통합

probook 2023. 2. 16. 21:53
반응형

Grunt를 통한 Yooman과의 통합

나는 Yeoman이 제작한 비계에 Protractor를 통합하고 싶다.튜토리얼을 따라 했더니 나이 든 사람이scenario-runnere2e 테스트 셋업에 사용되었습니다(voice,grunt).

발판을 업그레이드하고 대신 익트랙터를 사용하고 싶습니다.
무슨 생각 있어?

  1. 설치하다protractor그리고.grunt-protractor-runner부터npm:

    npm install protractor grunt-protractor-runner --save-dev
    
  2. 프로젝터 설정 파일 작성(protractor.conf.js변경하다specs그리고.baseUrl테스트 파일 및 테스트 서버로 전송:

    exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      specs: ['test/e2e/*_test.js'],
      baseUrl: 'http://localhost:9001' //default test port with Yeoman
    }
    
  3. 의 갱신Gruntfile.js카르마 태스크 뒤에 다음 항목을 추가합니다.

    protractor: {
      options: {
        keepAlive: true,
        configFile: "protractor.conf.js"
      },
      run: {}
    }
    
  4. 테스트 대상 견인기 작업 추가

    grunt.registerTask('test', [
      'clean:server',
      'concurrent:test',
      'autoprefixer',
      'connect:test',
      'karma',
      'protractor:run'
    ]);
    
  5. 셀레늄 서버를 다운로드하여 기동합니다.

    node_modules/protractor/bin/webdriver-manager update
    node_modules/protractor/bin/webdriver-manager start
    

    (Windows의 경우:)

    node node_modules/protractor/bin/webdriver-manager update
    node node_modules/protractor/bin/webdriver-manager start
    
  6. 의 갱신package.json, 다음에 다음을 추가합니다."devDependencies"이 명령어는 다음 시간 후에 실행됩니다.npm install매번 기억할 필요는 없어요.

    "scripts": {
      "install": "node node_modules/protractor/bin/webdriver-manager update"
    }
    
  7. Grunt를 사용하여 테스트 실행

    grunt test
    

프로젝터로 서버를 기동할 수 있도록 하려면 , 다음의 순서에 따릅니다.

seleniumAddress: 'http://localhost:4444/wd/hub',

부터protractor.conf.js, 그 후 실행grunt test는 테스트 중에 스탠드아론 셀레늄 인스턴스를 시작하고 테스트 스위트를 실행한 후 종료합니다.

기존 답변에 추가할 사항 중 하나는 Selenium 서버를 자동으로 부팅하는 경우 Selenium ServerJar 및 chromeDriver(크롬을 사용하는 경우)의 위치도 지정해야 합니다.그렇지 않으면 Selenium 서버를 수동으로 부팅할 때까지 테스트는 실행되지 않습니다(lin 명령에서 "webdriver-manager update"를 실행해야 합니다).e처음):

protractor: {
        options: {
            keepAlive: false,
            configFile: "test/config/protractor.conf.js",
            noColor: true, // If true, protractor will not use colors in its output.

            args: {
                seleniumServerJar: 'node_modules/protractor/selenium/selenium-server-standalone-2.39.0.jar',
                chromeDriver: 'node_modules/protractor/selenium/chromedriver.exe'
            }
        },
        run: {

        }
    },

@user2172816이 답변에서 언급한 바와 같이 생략seleniumAddress: 'http://localhost:4444/wd/hub'는 보통 프로젝터 구성에서 Selenium 인스턴스를 시작합니다.

또는 grunt-protractor-webdriver를 사용하여 Selenium을 시작할 수도 있습니다.

1) Grunt-Protractor-Webdriver 설치 및 저장

npm install grunt-protractor-webdriver --save-dev

2) Grunt 정의 함수에 다음 항목을 추가합니다.

grunt.loadNpmTasks('grunt-protractor-webdriver');

3) 다음 예제의 프로젝터 웹 드라이버 작업을 추가합니다.

protractor_webdriver: {
        start: {
            options: {
                path: 'node_modules/protractor/bin/',
                command: 'webdriver-manager start'
            }
        }
    }

4) 추가protractor_webdriver고객님께test작업을 수행해야 합니다(예:

grunt.registerTask('test', [
    'clean:server',
    'concurrent:test',
    'autoprefixer',
    'connect:test',
    'karma',
    'protractor_webdriver',
    'protractor:run'
]);

언급URL : https://stackoverflow.com/questions/19066747/integrating-protractor-with-yeoman-via-grunt

반응형