クールなプロジェクトを送信:ユニットテスト用のutboneバックボーンライブラリ







こんにちは、Habrahabr! ユニットテストのための私のプロジェクトに注目したいと思います。 より正確に-ファイルの作成、インポート、クラス、およびテストケースの宣言に特別な注意を払う代わりに、テストについてよく考えるツール。



この記事では、プロジェクトの説明、インストール方法と使用方法、およびサンプルを見つけることができます。



はじめに



utboneは、Pythonで記述されたコマンドラインライブラリ( Githubリポジトリへのリンク )です。 これは「ユニットテストボーン」の略で、「ユニットテストバックボーン」を意味します。 コンソールの1つのコマンドで、テスト用のテンプレートを作成できます。 これにより、「セットアップ」関数の宣言、たとえばdjangoでのテストなどの日常的な作業の時間を節約できます。 もう1つのミニ機能は、テストの1つにある「assershin」です。テストをすぐに実行し、このディレクトリでテストが実行されたかどうかを確認できます。



utbone mysite/polls/tests test_views django --topping
      
      





コンソールで上記のコマンドを使用すると、テストフォルダーにtest_viewsというテスト用の次のpythonファイルを作成できます。これは、外部モックおよびddtライブラリを使用してdjangoをテストすることを目的としています。



 """ Tests for """ from ddt import ddt, data, unpack from mock import patch from django.test import TestCase class Test(TestCase): """ Tests for """ def setUp(self): """ Initialize """ pass def test_first(self): """ Verify that """ self.assertEqual(1, '1') @patch('') def test_second(self, mock_): """ Assert that """ pass @data( ('first', 'second', 'expected'), ('first', 'second', 'expected'), ) @unpack def test_third(self, first, second, expected): """ Make sure when """ pass
      
      





基本パターン



テストのバックボーンは、テストのタイプとトッピングの存在が異なります(すべてのテンプレートは、 参照によりGithubで利用可能です)。



プロジェクト開発のこの段階でのタイプは次のとおりです。





トッピングの存在は、コンソールでテンプレートを作成するコマンドの最後にある--toppingフラグで表されます。 これにより、プログラマーが頻繁に使用するモックddtを追加し、コード内のメインツールをインポートして宣言できます。たとえば、テストメソッドの上にパッチデータデコレーターを追加できます。



  ... @patch('') def test_second(self, mock_): """ Assert that """ pass @data( ('first', 'second', 'expected'), ('first', 'second', 'expected'), ) @unpack def test_third(self, first, second, expected): """ Make sure when """ pass ...
      
      





使い方



この段階で、ライブラリの使用を開始できます。 最も確実な方法は、 pipを使用してインストールすることです。



 pip install utbone
      
      





utboneは3つの引数を取ります。ファイルを作成する場所、名前、種類を指定します。

4つ目-トッピングの存在を追加できます(-tまたは--toppingsを使用)。



 utbone mysite/polls/tests test_views django --topping
      
      





--helpフラグを使用して、ツールをローカルで使用する方法に関する指示を取得します。



 utbone --help
      
      





ご清聴ありがとうございました。



All Articles