理研

2259 ワード

今週、我々は我々のリンクチェッカーコードの中でテスト機能を実装するように頼まれました.あなたは、here鉱山を見つけることができます.
私が選んだテストフレームワークはUnitTestで、それは基本的なテストフレームワークであり、実際には新しいバージョンでPythonの内部に含まれています.あなたはそれにリンクを見つけることができますhere
私が使用したコードカバレッジツールはカバレッジと呼ばれます.
これらのツールの両方は私のプロジェクトの中で実装するのが非常に簡単でした、私がしなければならなかったすべてはpipでそれらをインストールしていました、そして、私はコーディングで行くことができました.(他のプログラマは簡単にダウンロードすることができました.
これは私のための非常に教育の研究室だったので、私はテストで私のコードを書いていなかったので、私は私がテストするために必要な機能に簡単にアクセスできるように私は私のコードの多くをリファクタリングしなければならなかったので、これは私に多くのトラブルを与えた.私が戻って、初めて私のコードを書き直すことができるならば、私は心でテストでそれを確かにします.(残念ながら、最初にリンクチェックプログラムを始めたときのテストについても何も知りませんでした)
UnitTestは、実際には、キーワードパッチ@ mockを使用して模擬機能を内蔵しています.基本的に@ patchを使用すると、プログラムによって送信されるリクエストは実際にはどこにも送られず、代わりに入力された値に置き換えられるようになります.
これらの2つの線はどのように私はネットワーク模擬試験に近づいています.
@patch("link_check.requests.head")  # Mock 'requests' module 'head' method.
mock_head.return_value.status_code = 200
私がコードのカバレッジ解析を実行していたときに起こった何かが、私が大きな問題を抱えていたのは、コードのどの部分を実行するかを選択するための引数ライブラリを使っていたので、すべての経路を走らせることになっていた.私が戻って、もう一度それをしなければならなかったならば、私は多分私が私が私のコードのすべての経路をテストすることができるように、私が私のコードで走っている議論を簡単に変えることができるフレームワークを選ぶでしょう、しかし、結局、私はそれがかなり良いと思う私のテストでそれを走らせたとき、74 %のコードカバレッジに達しましたが、確かに改善されることができます.
Githubアクションciのワークフローは非常に簡単でした.
python3 unittest
これは、キーワードテストをしたリポジトリ内のすべてのファイルをテストします.
私はGOで彼のプロジェクトを書いた誰かと提携しました.私にとって、彼のドキュメンテーションは非常にまっすぐに、そして、ポイントに、私がすぐにコーディングを得ることができたように、彼が書いた他のテストを見て、私は私が私のテストを書くために使う必要がある構文を拾うことができました.全体的に私のパートナーコードのテストを書くのはかなり簡単だった.
私は今、私は関数を書いている100 %心のテストを維持します.もう一つの大きなことは、Githubアクションのワークフローですが、これらは非常にクールです、私は実際に私は自分自身の個人的なウェブサイトで、それを実現するつもりです、私は自分のリポジトリにプル要求を作成するときに私は自分のリポジトリにプル要求を作成するときに私はNetlifyまたは私がプル要求を受け入れる前に私が作った変更を示すものを持つことができます.どのように我々の望遠鏡のプルの要求の仕事のようなもの.