3

Mozilla Firefox アドオンがあり、それをテストしたいと考えています。私は Mozmill を見つけ、小さな Python スクリプトを作成しました。これは、Firefox の各バージョンを取得して、次のようにコマンドを実行するだけです。

mozmill --binary=C:\browsers\firefox\38.0.1\firefox.exe 
--addon=C:\my_ext\ext 
--test=C:\my_ext\tests\mozmill\

スクリプトは次のunit_test_runner_public.pyとおりです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from subprocess import check_output
import time

firefox_binary_path = 'C:\\browsers\\firefox\\'
ff_addon_location = 'C:\\my_ext\\ext'
tests_folder = 'C:\\my_ext\\tests\\mozmill\\'
ff_versions = ['38.0.1', '37.0.2', '36.0.4', '35.0.1', '34.0.5', '33.1.1',
               '32.0.3', '31.0', '30.0', '29.0.1', '28.0', '27.0.1', '26.0',
               '25.0.1', '24.0', '23.0.1', '22.0', '21.0', '20.0.1', '19.0.2',
               '18.0.2', '17.0.1', '16.0.2', '15.0.1', '14.0.1', '13.0.1']


def build_ff_path(ff_version):
    return "%s%s%s" % (firefox_binary_path, ff_version, "\\firefox.exe")


for item in ff_versions:
    print "##### Started unit tests for Mozilla Firefox %s #####" % item
    current_run = "mozmill --binary=%s --addon=%s --test=%s" % \
        (build_ff_path(item), ff_addon_location, tests_folder)
    test_run_result = check_output(current_run, shell=True)
    print "##### Finished unit tests for Mozilla Firefox %s #####" % item

    time.sleep(10)

Mozmill はブラウザーを起動し、テストを実行してから、ブラウザーを閉じて、38.0.1 から 13.0.1 までの各 Firefox バージョンに対してテストを実行しています。

問題は、ほとんどの場合、ランダムな Firefox バージョンでハングすることです。したがって、ブラウザインスタンスを開き、テストを実行しますが、ブラウザを閉じず、Firefox ウィンドウがしばらくハングし、ターミナルに次のような例外が表示されます。

##### Finished unit tests for Mozilla Firefox 16.0.2 #####
##### Started unit tests for Mozilla Firefox 15.0.1 #####
mozversion INFO | application_buildid: 20120905151427
mozversion INFO | application_changeset: 0b774a1067fe
mozversion INFO | application_display_name: Firefox
mozversion INFO | application_id: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
mozversion INFO | application_name: Firefox
mozversion INFO | application_repository: http://hg.mozilla.org/releases/mozilla
-release
mozversion INFO | application_vendor: Mozilla
mozversion INFO | application_version: 15.0.1
mozversion INFO | platform_buildid: 20120905151427
mozversion INFO | platform_changeset: 0b774a1067fe
mozversion INFO | platform_repository: http://hg.mozilla.org/releases/mozilla-re
lease
mozversion INFO | platform_version: 15.0.1
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\mozmill\__init__.py", line 878, in run
    mozmill.run(tests, self.options.restart)
  File "C:\Python27\lib\site-packages\mozmill\__init__.py", line 473, in run
    self.stop_runner()
  File "C:\Python27\lib\site-packages\mozmill\__init__.py", line 595, in stop_ru
nner
    raise Exception('client process shutdown unsuccessful')
Exception: client process shutdown unsuccessful
Traceback (most recent call last):
  File "unit_test_runner_public.py", line 24, in <module>
    test_run_result = check_output(current_run, shell=True)
  File "C:\Python27\lib\subprocess.py", line 573, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'mozmill --binary=C:\browsers\firefox\15.
0.1\firefox.exe --addon=C:\my_ext\ext --test=C:\my_ext\tests\mozmill\' returned 
non-zero exit status 1

C:\my_ext>

また、Firefox のランダム バージョンで発生するたびに、特定の Firefox バージョンで問題のようなパターンはありません。

システムの詳細は次のとおりです。

  • OS: Microsoft Windows 7 Enterprise SP1 x86
  • パイソン: 2.7.9
  • モズミル: 2.0.10

そして、ピップリストの出力:

blessings (1.6)
jsbridge (3.0.3)
ManifestDestiny (0.5.7)
manifestparser (1.1)
mozcrash (0.14)
mozdevice (0.45)
mozfile (1.1)
mozinfo (0.7)
mozlog (2.11)
mozmill (2.0.10)
moznetwork (0.24)
mozprocess (0.22)
mozprofile (0.23)
mozrunner (5.35)
mozversion (1.0)
pip (1.5.6)
setuptools (7.0)

誰もそのような問題を経験したことがありますか?

4

1 に答える 1

1

それで、Mozmill Developers Google Groupsに質問を投稿した後、Mozmill の責任者であるHenrik Skupinから回答を得ました。

要するに、彼らもこの問題に遭遇しましたが、Mozmill は間もなく廃止される予定です。新しいフレームワークfirefox-ui-testsを使用することをお勧めします。--addon残念ながら、Mozmill のように指定する可能性はまだありませんが、バグ(機能要求) ;) がすでに作成されているため、この機能は将来のリリースで追加される可能性が高いです。一方、Firefox アドオンをテストする必要がある場合は、--profileアドオンがプリインストールされたビルド済みの Firefox プロファイルを指定できます。

于 2015-05-27T21:25:47.137 に答える