Làm cách nào để chạy tệp thử nghiệm trong python?

Niềm tin vào chất lượng, độ bền và độ tin cậy của sản phẩm là một trong những phẩm chất có giá trị nhất được người tiêu dùng cũng như các doanh nghiệp tìm kiếm. Sự tự tin này được xây dựng thông qua việc kiểm tra nghiêm ngặt một sản phẩm

Trong công nghệ phần mềm, các phương pháp như lập trình cực đoan (XP) và phát triển dựa trên thử nghiệm (TDD) ủng hộ niềm tin rằng thử nghiệm tự động nên được sử dụng ngay từ đầu dự án. Điều này có nghĩa là viết bài kiểm tra trước khi xây dựng bất kỳ tính năng nào để sản phẩm có độ tin cậy cao ngay từ đầu.  

Sử dụng phương pháp này đảm bảo rằng mỗi phần chức năng sẽ hoàn thành mục đích dự định của nó. Ngoài ra còn có lợi ích bổ sung là đảm bảo rằng chức năng phù hợp với các yêu cầu và tiêu chí chấp nhận do thiết kế đặt ra ngay từ đầu

Kiểm tra đơn vị là loại kiểm tra tự động nhanh nhất và phổ biến nhất hiện có cho các dự án phần mềm

Làm cách nào để chạy tệp thử nghiệm trong python?

Hình thành cơ sở của kim tự tháp thử nghiệm, các bài kiểm tra đơn vị kiểm tra các đơn vị chức năng nhỏ, riêng lẻ trong sự cô lập. Điều này cũng có nghĩa là chúng là thử nghiệm chạy nhanh nhất, thực hiện hàng trăm thử nghiệm trong vài giây. Tốc độ thực thi nhanh này là lý do tại sao chúng cũng phong phú nhất

Trong bài viết này, chúng tôi sẽ trình bày cách bắt đầu thử nghiệm đơn vị trong Python.  

Viết bài kiểm tra đơn vị

Trong hướng dẫn này, chúng ta sẽ xây dựng một phương thức cơ bản có tên là

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
8, phương thức này nhận một cặp biến (chúng ta sẽ gọi chúng là a và b), sau đó, bên trong hàm, mỗi biến sẽ được cộng lại với nhau trước khi được trả về. Ví dụ: nếu chúng tôi chuyển 5 và 10 làm đầu vào, nó sẽ trả về 15. Chỉ các số mới được chấp nhận làm đầu vào hợp lệ, vì vậy chúng tôi sẽ thêm xử lý lỗi cho bất kỳ đầu vào nào không đáp ứng yêu cầu này.
Điều đầu tiên chúng ta cần làm là tạo một tệp có tên
from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
9. Trong đó, chúng ta sẽ bắt đầu bằng cách kéo gói Python
from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
0 bằng cách sử dụng dòng. Điều này sẽ cung cấp cho chúng tôi quyền truy cập vào từ khóa
from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
1 mà chúng tôi sẽ cần để xây dựng các bài kiểm tra của mình.

import unittest

Bây giờ chúng tôi có cái này, chúng tôi có thể xây dựng bài kiểm tra đầu tiên của mình. Đầu tiên, chúng tôi kiểm tra loại đầu ra của chức năng của chúng tôi

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)

Bây giờ chúng tôi có bài kiểm tra đơn vị đầu tiên của chúng tôi.  

Dòng đầu tiên của hàm gọi hàm

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
8 của chúng ta, chuyển 5 và 10 làm đầu vào. Dòng cuối cùng ở trên được gọi là xác nhận kiểm tra. Xác nhận thử nghiệm là một điều kiện mà chúng tôi mong đợi chức năng mà chúng tôi đang thử nghiệm tuân thủ. Chúng thường được liên kết trực tiếp hoặc gián tiếp với các tiêu chí hoặc yêu cầu chấp nhận mà bạn đang làm việc. Liên kết giữa các xác nhận và tiêu chí chấp nhận này là lý do tại sao việc sử dụng các xác nhận chính xác là rất quan trọng khi đảm bảo rằng phần mềm thực sự đang làm những gì được mong đợi

Hiện tại, bài kiểm tra đơn vị này đang kiểm tra xem phản hồi mà chúng tôi nhận được từ hàm

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
8 có phải là một số nguyên hay không (còn được gọi là số nguyên). Nếu đúng, bài kiểm tra sẽ vượt qua. Nếu không, nó không thành công và hiển thị lỗi cho chúng tôi để chúng tôi có thể tìm ra lý do tại sao nó không vượt qua

Nếu chúng tôi chạy thử nghiệm này ngay bây giờ, nó sẽ hiển thị lỗi. Điều này là do không có chức năng

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
8. Vì vậy, hãy thêm một

def my_sum(a, b):
    return a + b

Đoạn mã trên sẽ vượt qua bài kiểm tra của chúng tôi. Tuy nhiên, có nhiều tình huống mà chúng tôi hiện không kiểm tra, vì vậy chúng tôi sẽ thêm một số xác nhận bổ sung.  

Trước tiên, hãy thêm một kiểm tra ngay sau khi kiểm tra loại của chúng tôi xem giá trị chính xác có được trả về hay không. Trong thử nghiệm hiện tại của chúng tôi, giá trị chính xác là 15

self.assertEqual(response, 15)

Khẳng định ở trên so sánh phản hồi của chúng tôi với một giá trị không đổi. Ngoài ra, chúng tôi sẽ muốn thêm một số thử nghiệm khác để kiểm tra xem chức năng của chúng tôi có hoạt động với dấu phẩy động và số âm hay không

def test_my_sum_returns_correct_float(self):
    response = my_sum(5, 10.5)

    self.assertIsNotNone(response)
    self.assertTrue(type(response) is float)
    self.assertEqual(response, 15.5)

def test_my_sum_returns_correctly_with_negatives(self):
    response = my_sum(-5, -10)

    self.assertIsNotNone(response)
    self.assertTrue(type(response) is int)
    self.assertEqual(response, -15)

Chúng tôi cũng muốn đảm bảo rằng chức năng của chúng tôi sẽ trả về lỗi khi nó chuyển các đầu vào không hợp lệ. Những đầu vào xấu này có thể là chữ cái hoặc đối tượng. Để làm điều này, chúng tôi sẽ tạo một số thử nghiệm mới và sử dụng xác nhận

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
5, có cấu trúc hơi khác so với các thử nghiệm khác

________số 8

Cuối cùng, để các bài kiểm tra mới này vượt qua, chúng tôi sẽ cần thêm một số xử lý lỗi trong chức năng của chúng tôi. Điều này có thể được thực hiện bằng cách sửa đổi mã hiện tại của chúng tôi để sử dụng phương pháp ____06 để kiểm tra các loại đầu vào và sau đó tăng một số

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
7 nếu loại không phải là số nguyên hoặc số float

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
1

Chạy thử nghiệm đơn vị

Tiếp theo, chúng tôi sẽ xem xét chạy thử nghiệm của chúng tôi. Tuy nhiên, trước khi chúng tôi thực sự chạy thử nghiệm của mình, chúng tôi sẽ thêm một điểm vào bằng cách thêm hai dòng sau vào cuối tệp

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
9 của chúng tôi

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
2

Sử dụng một dòng lệnh, chúng tôi điều hướng đến thư mục chứa các tệp của chúng tôi. Khi ở trong cùng một thư mục, chúng ta có thể chạy thử nghiệm bằng lệnh python

from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
9

Làm cách nào để chạy tệp thử nghiệm trong python?

Điều này hướng dẫn dòng lệnh sử dụng Python để thực thi tệp

def my_sum(a, b):
    return a + b
0, nơi nó chạm vào điểm vào của chúng tôi và sau đó được yêu cầu sử dụng trình chạy thử nghiệm
from my_sum import my_sum

class TestingMySum(unittest.TestCase):
    def test_my_sum_returns_correct_int(self):
        response = my_sum(5, 10)
        self.assertTrue(type(response) is int)
0. Một cách tương tự để chạy tệp thử nghiệm này từ dòng lệnh là sử dụng lệnh python
def my_sum(a, b):
    return a + b
2 như hình bên dưới

Làm cách nào để chạy tệp thử nghiệm trong python?

Như thể hiện trong các ảnh chụp màn hình này, một số văn bản sẽ được trả về dòng lệnh cung cấp cho bạn thông tin về kết quả kiểm tra. Dòng đầu tiên sẽ hiển thị bài kiểm tra nào không đạt hoặc vượt qua khi sử dụng dấu chấm (. ) để biểu thị các bài kiểm tra vượt qua và E hoặc F để hiển thị bài kiểm tra bị lỗi hoặc không đạt. Chúng tôi cũng sẽ được cung cấp một dấu vết ngăn xếp cho mỗi bài kiểm tra không thành công giải thích lý do tại sao mỗi bài kiểm tra không vượt qua

Chạy thử nghiệm đơn vị trong IDE

Các bài kiểm tra đơn vị này cũng có thể được thực thi từ bên trong môi trường nhà phát triển tích hợp (IDE) yêu thích của bạn, như PyCharm hoặc Visual Studio. Điều này giúp thuận tiện hơn khi làm việc với các dự án lớn bao gồm nhiều tệp

Chạy thử nghiệm đơn vị trong Visual Studio Code

Để chạy thử nghiệm trong Visual Studio Code, bạn sẽ cần định cấu hình Visual Studio Code để hoạt động với khung thử nghiệm. Để thực hiện việc này, chúng tôi mở tab Thử nghiệm trên menu thanh bên

Làm cách nào để chạy tệp thử nghiệm trong python?

Một menu giống như trên sẽ xuất hiện. Nhấp vào nút có nhãn Cấu hình kiểm tra Python. Một menu thả xuống sẽ xuất hiện ở đầu màn hình. Từ đây, chọn unittest

Làm cách nào để chạy tệp thử nghiệm trong python?
Làm cách nào để chạy tệp thử nghiệm trong python?

Tiếp theo, nhấp vào tùy chọn được gắn nhãn với thư mục của các bài kiểm tra. Trong hướng dẫn này, đây là thư mục gốc được gắn nhãn có dấu chấm (như hình trên). Nhóm tùy chọn tiếp theo hỏi mẫu đặt tên nào chúng tôi đã sử dụng cho các tệp thử nghiệm của mình. Đối với hướng dẫn này, tùy chọn chúng tôi sẽ chọn là

def my_sum(a, b):
    return a + b
3

Làm cách nào để chạy tệp thử nghiệm trong python?

Trình chạy thử nghiệm của chúng tôi bây giờ sẽ được định cấu hình chính xác, nghĩa là các thử nghiệm của chúng tôi sẽ hiển thị trong menu Thử nghiệm ở bên trái. Từ đây, có thể chạy thử nghiệm bằng cách nhấp vào nút Chạy thử nghiệm

Làm cách nào để chạy tệp thử nghiệm trong python?

Bất kỳ bài kiểm tra nào vượt qua sẽ hiển thị với dấu kiểm màu xanh lá cây, trong khi các bài kiểm tra không đạt sẽ có chữ thập đỏ. Ảnh chụp màn hình bên dưới hiển thị một ví dụ về cả hai

Làm cách nào để chạy tệp thử nghiệm trong python?

Thiết lập một nền tảng vững chắc với các bài kiểm tra đơn vị

Kiểm thử đơn vị là một yếu tố quan trọng trong kim tự tháp kiểm thử. Việc kiểm tra các tính năng và chức năng riêng biệt rất quan trọng vì chúng thường là cách xây dựng và chạy nhanh nhất. Điều này có nghĩa là một bộ thử nghiệm lớn có thể được hoàn thành cực kỳ nhanh chóng để xác nhận rằng tất cả các yêu cầu và tiêu chí chấp nhận đều được đáp ứng. Để thấm nhuần niềm tin vào các dự án của chúng tôi ngay từ đầu, các bài kiểm tra đơn vị nên được viết trước bất kỳ mã chức năng nào

Bài đăng trên blog này được tạo ra như một phần của Chương trình viết về cộng đồng quan trọng nhất và được xuất bản theo CC BY-NC-SA 4. 0 giấy phép. Để tìm hiểu thêm về Chương trình viết về cộng đồng quan trọng nhất, hãy xem phần này

Đọc thêm về

Kiểm tra QA Python

Làm cách nào để chạy tệp thử nghiệm trong python?

def my_sum(a, b):
    return a + b
4

Kyle là kỹ sư phần mềm đa ngôn ngữ thuần chay tại Made Tech, nơi anh xây dựng các ứng dụng dựa trên đám mây bền vững cho các tổ chức khu vực công nhằm mang lại lợi ích cho xã hội. Khi rảnh rỗi, anh ấy thích đọc sách hoặc nghe nhạc sống khi không dành thời gian cho bạn bè và gia đình

Chức năng nào cho phép bạn chạy các trường hợp thử nghiệm trong Python?

người khó tính. Trình chạy thử nghiệm pytest hỗ trợ thực hiện các trường hợp thử nghiệm nhỏ nhất. Lợi ích thực tế của pytest là viết các trường hợp kiểm tra pytest. Các trường hợp kiểm tra pytest nói chung là chuỗi các phương thức trong tệp Python bắt đầu

Làm thế nào chúng ta có thể sử dụng Python để thử nghiệm?

Một số khung thử nghiệm được sử dụng rộng rãi cho tự động hóa thử nghiệm Python là PyTest, Behave, Robot, Lettuce, Nose2 và Testify . Các khung như PyTest, Nose2 và Testify có thể được sử dụng để thực hiện kiểm tra đơn vị, tích hợp và hệ thống tự động.