LoginSignup
1
0

dbt-coreにおけるOSS活動ことはじめその3 ~ テストの話 ~

Last updated at Posted at 2023-05-26

本記事が目指すこと

  • dbt-coreにおけるOSS活動を始めるにあたってやるべきこと、学びになったことを紹介する
    • 複数回に渡り連載する予定

注意

  • 投稿時点(2023/5/26)での情報に基づくため、本記事で紹介した手順が今後も利用できる保証はありません
  • なお、本記事は筆者が所属する会社と関係なく、個人の記事であることをご了承ください

背景

  • 筆者は、ちゅらデータ株式会社に務める会社員であるが、就業時間中に職務としてのdbt-coreのOSS活動を始めた(OSS活動自体が初めての経験)
  • CONTRIBUTING.mdを読めばテストができる。しかし、ドキュメントには明示的に記載されてない部分があったり、バグがあったりしたため、それらの解決策を提示する

(2023/7/11 追記)
上述した筆者が立てたPRがマージされ、IssueもClosedになったため、バグが解決された。mainに取り込まれたため、別途コードを取り込まずにテストが正常に終了するようになった。

前提

本編

  • 単体テストを実行(データベースを含まないテスト)

    • make test
      • 実行されるコマンド
        • py: install_deps> python -I -m pip install -r dev-requirements.txt -r editable-requirements.txt
        • py: commands[0]> .tox/py/bin/python -m pytest --cov=core test/unit
          • 期待される結果(エラーが発生しないこと)
            • 869 passed, 5 skipped in 44.21s
              • skipされたテストを確認したい場合は、pytestのコマンドに -v オプションを追加して実行すると良い
        • py: commands[1]> .tox/py/bin/python -m pytest --cov=core tests/unit
          • 期待される結果(エラーが発生しないこと)
            • 151 passed in 11.59s
  • 統合テストを実行(アダプタ(データベース)との接続テスト。前回の記事の環境構築でも紹介したプロファイルを作成しておく必要がある。また、「前提」で紹介したPRを取り入れ、JSTに対応するようにコード修正が必要な点に注意)

    • make integration
      • 実行されるコマンド
        • py-integration: commands[0]> .tox/py-integration/bin/python -m pytest --cov=core -nauto tests/functional
          • 期待される結果(エラーが発生しないこと)
            • 645 passed, 1 skipped in 482.71s (0:08:02)
        • py-integration: commands[1]> .tox/py-integration/bin/python -m pytest --cov=core -nauto tests/adapter
          • 期待される結果(エラーが発生しないこと)
            • 161 passed in 156.42s (0:02:36)

以上。次回は、変更ログ管理について執筆予定

終わりに

ちゅらデータでは、クレイジーな仲間を募集しているでござる
データエンジニア、もしくはSE系からデータエンジニアになりたい方がいればぜひ、御仁の力量に応じたグレード(ジュニア/ミドル/シニア)にて、応募するでござる

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0