Momentan komme ich bei der Ergründung der Ursache einer Fehlermeldung bei einem pytest nicht voran. Auf
Stack Overflow schrieb jemand zu der Fehlermeldung, dass der Speicher ausgeht, aber der Arbeitsspeicher meines Rechners (8 GB) ist nur bis zur Hälfte belegt.
Fehlermeldung:
Code: Alles auswählen
Testing started at 18:35 ...
/usr/bin/python3.6 /snap/pycharm-community/112/helpers/pycharm/_jb_pytest_runner.py --path /home/ata/source/test_bmi.py
Launching pytest with arguments /home/ata/source/test_bmi.py in /home/ata/source
============================= test session starts ==============================
platform linux -- Python 3.6.7, pytest-4.2.1, py-1.7.0, pluggy-0.8.1
rootdir: /home/ata/source, inifile:collected 1 item
test_bmi.py
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
test_bmi.py:
Code: Alles auswählen
from pytest import fixture
import main
@fixture
def main_window():
return main.MainWindow()
def test_bmi_main_window(main_window):
assert main_window._calculate_BMI(180, 80) == 24.691358024691358
bmi.py:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.uic import loadUi
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
loadUi("bmi.ui", self)
self._write_size()
self._write_weight()
self._write_BMI()
self.horizontalSlider_size.sliderMoved.connect(self._write_BMI)
self.horizontalSlider_size.sliderMoved.connect(self._write_size)
self.horizontalSlider_weight.sliderMoved.connect(self._write_BMI)
self.horizontalSlider_weight.sliderMoved.connect(self._write_weight)
@property
def _size(self):
return self.horizontalSlider_size.value()
@property
def _weight(self):
return self.horizontalSlider_weight.value()
def _write_size(self):
self.output_size.setText(f"{self._size} cm")
def _write_weight(self):
self.output_weight.setText(f"{self._weight} kg")
def _calculate_BMI(self, size, weight):
return weight / (size / 100) ** 2
def _write_BMI(self):
BMI = self._calculate_BMI(self._size, self._weight)
self.output_BMI.setText(str(round(BMI, 2)))
def main():
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
bmi.ui:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>Berechnungen</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QTabWidget" name="tabWidget">
<property name="geometry">
<rect>
<x>50</x>
<y>40</y>
<width>681</width>
<height>451</height>
</rect>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>BMI</string>
</attribute>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>50</x>
<y>50</y>
<width>591</width>
<height>151</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_size">
<property name="text">
<string>Größe:</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="3">
<widget class="QSlider" name="horizontalSlider_size">
<property name="toolTipDuration">
<number>-1</number>
</property>
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>250</number>
</property>
<property name="sliderPosition">
<number>175</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::NoTicks</enum>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QLabel" name="output_size">
<property name="text">
<string>x cm</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="label_weight">
<property name="text">
<string>Gewicht:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QSlider" name="horizontalSlider_weight">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>300</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="sliderPosition">
<number>80</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::NoTicks</enum>
</property>
</widget>
</item>
<item row="1" column="3" colspan="2">
<widget class="QLabel" name="output_weight">
<property name="text">
<string>x kg</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>257</x>
<y>220</y>
<width>191</width>
<height>41</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_BMI">
<property name="text">
<string>BMI:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="output_BMI">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
Gruß
Atalanttore