WireCloud が提供するテストを実行する前に、いくつかの依存関係をインストールする必要があります :
pip install django-nose "mock>=1.0,<2.0"
単体テスト¶
サーバのユニット・テストが実行されます :
python manage.py test -v 2 --noinput --nologcapture -a tags="wirecloud-noselenium"
これらの単体テストは、いくつかの外部サービスを置き換えるためにモックを使用しますが、Django が settings.py
ファイルで提供されている設定を使用して設定しています。たとえば、django は、テスト実行時にこのファイルで提供される
データベース設定を使用します。
クライアント側で実行される JavaScript コードの単体テストもあります。次のコマンドを実行することで、 これらのテストを調整できます :
grunt karma
注: JavaScript 単体テストは進行中であり、コード・カバレッジは期待できません。
統合テスト¶
統合テストでは selenium を使用しますが、pip 経由でインストールすることもできます :
pip install selenium
インストールしたら、テストに使用するブラウザ用のドライバをインストールする必要があります。テスト用に推奨されるブラウザ は、Firefoxと Chrome/Chromium です。これらのブラウザに必要なドライバは、次のリンクからダウンロードできます :
テストに使用するブラウザは、この WIRECLOUD_SELENIUM_TEST_BROWSERS
設定を使用して settings.py
ファイルに構成されます。次のスニペットは、可能な構成の例です :
WIRECLOUD_SELENIUM_TEST_BROWSERS = {
# Download geckodriver from the following URL:
# https://github.com/mozilla/geckodriver/releases
# Old versions of Firefox can be found here:
# http://archive.mozilla.org/pub/mozilla.org/firefox/releases/
'Firefox': {
'CLASS': 'selenium.webdriver.Firefox',
},
# Download chromedriver from the following URL:
# https://sites.google.com/a/chromium.org/chromedriver/downloads
# Old versions of chrome can be found here:
# http://google-chrome.en.uptodown.com/mac/old
'GoogleChrome': {
'CLASS': 'selenium.webdriver.Chrome',
},
# Download opera driver from the following URL:
# https://github.com/operasoftware/operachromiumdriver/releases
# Old versions of Opera can be found here:
# http://get.geo.opera.com.global.prod.fastly.net/pub/opera/
'Opera': {
'CLASS': 'selenium.webdriver.Opera',
},
# https://blog.codecentric.de/en/2015/02/selenium-webdriver-safari-8/
'Safari': {
'CLASS': 'selenium.webdriver.Safari',
},
}
これで、次のコマンドを実行して統合テストにパスすることができます :
python manage.py test -v 2 --noinput --nologcapture -a tags="wirecloud-selenium"
他のサーチバックを使用¶
デフォルトでは、テストは Whoosh を使用して実行されますが、これは、Solr または ElasticSearch2 を使用するように構成できます。
テスト検索のバックアップを変更するには、settings.py
ファイルの TEST_HAYSTACK_CONNECTIONS
プロパティを設定します。
Whoosh の場合¶
テスト検索のバックエンドとして手動で Whoosh を設定すると、Whoosh インデックスを格納するカスタムパスを設定できます。
Wirecloud テストで使用されるデフォルト PATH
は、テストが終了した後に削除されます。
TEST_HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'wirecloud.commons.haystack_backends.whoosh_backend.WhooshEngine',
'PATH': path.join(path.dirname(__file__), 'whoosh_index'), # This setting is optional, if not set, the default tmp location will be used.
},
}
Solr の場合¶
TEST_HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'wirecloud.commons.haystack_backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr/wirecloud_test_core'
},
}
ここでの、URL
は、テストに使用される Solr コアの URL です。
ElasticSearch について¶
TEST_HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'wirecloud.commons.haystack_backends.elasticsearch2_backend.Elasticsearch2SearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'wirecloud_testing',
},
}
ここでの、URL
は、Haystack サーバの URL です。