unittest
と呼ばれる単一のテストクラスで_scraping_test.py
_と呼ばれるpythonテストファイルを作成しました。これは、TestScrapingUtils
と呼ばれます。
_"""Tests for the scraping app"""
import unittest
from bs4 import BeautifulSoup as bs4
from mosque_scraper.management.commands import scraping_utils
from mosque_scraper.selectors import MOSQUE_INFO_ROWS_SELECTOR
class TestScrapingUtils(unittest.TestCase):
"""Test scraping_utils.py """
def setup(self):
"""Setup McSetupface."""
pass
def test_get_keys_from_row(self):
""" Test that we extract the correct keys from the supplied rows."""
test_page_name = "test_page.html"
with open(test_page_name) as test_page_file:
test_mosque = bs4(test_page_file, 'html.parser')
rows = test_mosque.select(MOSQUE_INFO_ROWS_SELECTOR)
field_dict = scraping_utils.get_fields_from_rows(rows)
self.assertDictEqual(field_dict, {})
_
単体テストの設定は次のとおりです。
_{
"python.unitTest.unittestEnabled": true,
"python.unitTest.unittestArgs": [
"-v",
"-s",
".",
"-p",
"*test.py"
]
}
_
動作するように見えますが、クリックしてVSCodeでテストを実行すると、テストが検出されなかったと表示されます。
_No tests discovered, please check the configuration settings for the tests.
_
どうすればそれを機能させることができますか?
ショートカットキーshift + ctrl pを使用して一度実行し、「Python run allunittests」と入力する必要があります。
少なくとも1回は正常に実行されるか、単体テストメソッドを使用するまで、エディターに表示されません。
ただし、何度も気になるのは、Pythonファイルは有効なPythonファイルである必要があるということです。VSCodeのPythonは複雑ではなく(JavascriptまたはTypeScriptと比較して)、構文エラーを強調表示しません。すべてのユニットテストを強制的に実行し、Pythonテストログウィンドウ。
私にとっては、ユニットテストを発見することでうまくいきました。
SHIFT+CTRL+P 「Python:ユニットテストの発見」を実行します
これを実行した後、各テスト関数に対して「テストの実行|デバッグテスト」を取得します。