Мне было поручено создать графический интерфейс для нашего модульного тестирования.Для этого я создал базу данных sqlite
.Вот фрагмент SQL-менеджера, который я использую
manager.py
def write_results_true(self):
connection = sqlite3.connect('../data.db')
cursor = connection.cursor()
cursor.execute('''UPDATE Tests
SET Passed = 'True'
WHERE Script = ''' + self.test + '''''')
connection.close()
И пример теста:
test.py
manager = manager.Manager("'test_login_superuser'")
class TestTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("https://example.com")
def first_test(self):
current_url = self.driver.current_url
if current_url == 'https://example.com':
manager.write_results_true()
self.assertEqual(current_url, assertion_url)
Я считаю, что проблема, с которой я столкнулся, вызвана sqlite3
.Тесты все еще завершены, и терминал отражает это.Он также выводит игнорируемое исключение, но ничего не записывается в базу данных.
D:\_jb_unittest_runner.py" --path D:/test.py
Launching unittests with arguments python -m unittest D:/test.py in D:\
Ran 1 test in 6.167s
OK
Exception ignored in: <function Popen.__del__ at 0x02F91738>
Traceback (most recent call last):
File "C:\Users\[user]\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 854, in __del__
self._internal_poll(_deadstate=_maxsize)
File "C:\Users\[user]\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1210, in _internal_poll
if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
OSError: [WinError 6] The handle is invalid
Process finished with exit code 0