如何在python中自动化测试?

时间:2017-09-15 00:46:38

标签: python python-3.x unit-testing automated-tests tdd

我已经和python(学术界)合作了5年了,但直到上周才开始测试。两个星期前,我申请了一份工作,雇主要我做一个python任务,其中一部分应该是单元测试。 假设我的代码简单如下(让我们调用它" add_numbers.py"):

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('x', type=float)
parser.add_argument('y', type=float)

class add_numbers ():
    def __init__ (self, x, y):
        self.x = x
        self.y = y

    def add(self):
        return self.x+self.y

if __name__ == '__main__':
    args = parser.parse_args()
    an = add_numbers(args.x,args.y)
    print('{} + {} = {}'.format(args.x,args.y,an.add()))

并且还假设测试脚本如下,我们将其命名为" test_add_numbers.py":

import unittest
from add_numbers import add_numbers

class TddAdd(unittest.TestCase):

    def test_add_two_numbers(self):        
        self.assertEqual(3, add_numbers(1,2).add()) 

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

然后作为运行我写给他的代码的说明,你可以运行测试

python test_add_numbers.py

并且要运行主程序,您应该输入

python add_numbers 2 3

然而,他在2-3天之后回到我身边并且说他后悔拒绝我告诉我我应该自动化#34;考试。他的意思是什么?因此,我应该将测试集成到主文件中,以便在运行时

python add_numbers 2 3

首先"自动"运行测试,然后运行主程序。

什么"自动化"测试意味着在这里以及如何进行上述测试"自动化"?

1 个答案:

答案 0 :(得分:1)

这似乎是一个奇怪的区别。我会要求面试官澄清一下。它不会改变他们的招聘决定,但你提问是完全合理的。

对我而言,自动化测试类似于运行nosetests,但与unittest没有太大差别,只需要更多功能。奇怪的是,python中的大多数(或许多)测试包都是unittest的扩展。