LoginSignup
5
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-06-09

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

テストコードの準備

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

テスト対象コード

calc.py
# -*- 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

テストコード

test_calc.py
# -*- 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
5
4
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
5
4