2017-04-11 6 views
0

以下は私のgruntfile.jsです。私はUIで分度器テストを走らせることができます。分度器ヘッドレスブラウザXVFBを使ったテスト+ CentOS 7でのGruntランナーLinuxディストリビューション

しかし、ヘッドレスモードでテストを実行できるように 'grunt protractor-xvfb'コマンドを実行しようとすると、ブラウザはまだ起動し、grunt protractor:runコマンドと同じ方法でテストが実行されます。

私は、テストがバックグラウンドで実行されることを期待しています。

module.exports = function (grunt) { 

require('load-grunt-tasks')(grunt); 

    grunt.initConfig({ 
     protractor: { 
     options: { 
      keepAlive: true, 
      configFile: "../spike-protractor/app/Conf/conf.js", 
      noColor: false, 
      args: { 
      baseUrl: 'https://xxx/xxx/' 
      } 
     }, 
     run: {} 
    }, 
    shell: { 
     xvfb: { 
      command: 'Xvfb :99 -ac -screen 0 1600x1200x24', 
      options: { 
       async: true 

      } 
     } 
    }, 
    env: { 
     xvfb: { 
      DISPLAY: ':99' 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-protractor-runner'); 
    grunt.loadNpmTasks('grunt-shell-spawn'); 
    grunt.loadNpmTasks('grunt-env'); 
    grunt.loadNpmTasks('grunt-protractor-webdriver'); 
    grunt.registerTask('protractor-chrome', ['protractor:chrome']); 

    grunt.registerTask('protractor-xvfb', [ 
    'shell:xvfb', 
    'env:xvfb', 
    'protractor:run', 
    'shell:xvfb:kill' 
    ]); 

} 

私はラインコード「分度器コメントアウトしようとした:run'from grunt.registerTaskとイサキの分度器-XVFBを実行すると私のコードごとのように正確である以下の出力が得られます。これは、何も起こらないほど速く実行されます。私はヘッドレスのテストを達成するために設定/コードに欠けているものがあると思います。

が実行されている "シェル:XVFB"(シェル)タスク

実行 "ENV:XVFB"(ENV)タスク

実行 "シェル:XVFB:殺す"(シェル)タスク

が完了します。

xvfb + grunt +分度器を使用してヘッドレステストを実際に進めるにはどうすればよいですか?

答えて

0

ヘッドレスChromeやFirefoxのテスト、ビデオ録画、VNCライブプレビュー、ローカルdashboard.htmlなどの機能が必要な場合は、Zaleniumと一緒に使うのが実際的です。

あなたはワンライナーを始めることができます。

curl -sSL https://raw.githubusercontent.com/dosel/t/i/p | bash -s start 

および/または、プレゼンテーションを見る:

https://www.youtube.com/watch?v=W5qMsVrob6I

0

あなたは正しくconf.jsを実行するために指定されていませんでした。 あなたの質問に指定されたあなたのgruntfile.jsから一部

grunt.registerTask('protractor-chrome', ['protractor:chrome']); 

を削除します。 編集しgruntfile.jsと以下の追加:

grunt.registerTask('protractor-xvfb', [ 
     'shell:xvfb', 
     'env:xvfb', 
     'protractor:run', 
     'shell:xvfb:kill' 
    ]); 

を使用すると、XVFB useコマンド「面倒分度器:実行」せずに実行したい場合は、それを追加すると。

あなたは、これは以下のコマンドを使用してconf.js指定するために、私は回避策を見つけた

+0

こんにちは、ありがとうございます。私はこれらのステップを実行しましたが、不平をつかむ - xvfbを実行すると、ブラウザを起動し、ヘッドレスモードでテストを実行しません。 –

+0

あなたの完全なgruntfile.jsを貼り付けてください – stackoverflow

0

をコマンド「作男分度器-XVFB」を使用XVFBを使用して実行する場合 -

XVFB-実行を - server-args = ' - screen 0,1600x1200x24'分度器アプリケーション/ Conf/conf.js

これを実行すると、私はヘッドレスモードでテストを実行できます。

あなたのプロジェクトでGruntを使用していなくても、npmでxvfbを直接インストールし、このコマンドを使用してteamcityコマンドラインパラメータに渡すことができます。

関連する問題