【Jenkins備忘録】Python自動テスト環境構築②テストコード準備編

この記事はQiitaの記事をエクスポートしたものです。内容が古くなっている可能性があります。

・Python3.6.0をインストールしたところからスタート。

テストコードの準備

Pythonユニットテストには標準で用意されているunittestフレームワークを使用する。  詳しい使い方は、本家サイト(https://docs.python.org/dev/library/unittest.html) で確認

テスト対象コード

# -*- coding: UTF-8 -*-


class Calculator(object):

    # 加算
    def add(self, num1, num2):
        return num1 + num2

    # 減算
    def sub(self, num1, num2):
        return num1 - num2

    # 乗算
    def mul(self, num1, num2):
        return num1 * num2

    # 除算
    def div(self, num1, num2):
        return num1 // num2

テストコード

# -*- coding: UTF-8 -*-

import unittest
from calc import Calculator


class Test_Calc_add(unittest.TestCase):

    # 加算テスト
    def test_add(self):
        print('Test add(self, num1, num2) ')
        calc = Calculator()
        result = calc.add(10, 20)

        self.assertEqual(result, 30, 'Match expected value')

    # 減算テスト
    def test_sub(self):
        print('Test sub(self, num1, num2) ')
        calc = Calculator()
        result = calc.sub(20, 6)

        self.assertEqual(result, 14, 'Match expected value')

    # 乗算テスト
    def test_mul(self):
        print('Test mul(self, num1, num2) ')
        calc = Calculator()
        result = calc.mul(3, 6)

        self.assertEqual(result, 18, 'Match expected value')

    # 除算テスト
    def test_div(self):
        print('Test div(self, num1, num2) ')
        calc = Calculator()
        result = calc.div(20, 5)

        self.assertEqual(result, 4, 'Match expected value')


if __name__ == '__main__':
    unittest.main()

テストコードの実行

・calc.pyとtest_calc.pyを同じディレクトリ内に配置後、  以下のコードを端末で入力するとテストが実行される。

$ python test_calc.py

Test add(self, num1, num2) 
.Test div(self, num1, num2) 
.Test mul(self, num1, num2) 
.Test sub(self, num1, num2) 
.
----------------------------------------------------------------------
Ran 4 tests in 0.000s

OK