cbnuLeehyunwoo / Fine_Dust_Measurment

MIT License
0 stars 0 forks source link

Unittest - read_arduino() 함수 오류 #88

Closed choigowon closed 3 months ago

choigowon commented 4 months ago

scr.py 파일 Unittest 진행 중입니다. 다른 함수들은 정상적으로 작동하는데 read_arduino() 함수에서 ser = serial.Serial(PORT, BaudRate) 부분에서 오류가 뜹니다. 아두이노 연결안되있어서 그런건지 진짜 오류인건지 잘 모르겠습니다. 일단 테스트는 잘 동작하는데 저 부분에서 계속 오류가 뜹니다. 해결 방안 알려주세요.

Exception in thread Thread-1 (read_arduino): Traceback (most recent call last): File "c:\Users\최고원\Desktop\오픈소스\project\practice\scr.py", line 12, in read_arduino ser = serial.Serial(PORT, BaudRate) . ^^^ Ran 1 test in 0.001s^^^ OK^^ ^

cbnuLeehyunwoo commented 4 months ago

아마 제 생각에도 연결이 안되어있어서 그런 것 같습니다. 해당 부분은 제가 테스트 하도록 하겠습니다!

choigowon commented 3 months ago

연결이 안되어있을 경우 from unittest.mock import patch, MagicMock 라이브러리를 import 한 후

choigowon commented 3 months ago

해당 코드

@patch('serial.Serial')
    def test_arduino_data_number(self, mock_serial):
        # mock 객체 설정
        mock_serial_instance = MagicMock()
        mock_serial.return_value = mock_serial_instance
        mock_serial_instance.in_waiting = True
        mock_serial_instance.readline.return_value = b'123.45\n'

        # 스레드 시작
        scr.threading.Thread(target=scr.read_arduino, daemon=True).start()

        # 스레드가 값을 읽을 시간을 줌
        scr.threading.Event().wait(1)
choigowon commented 3 months ago

오류없이 테스트 작동하였습니다. image