src/eric7/Testing/TestingWidget.py

branch
eric7
changeset 10415
af9a6dac2611
parent 10413
2ecbe43a8e88
child 10421
3d14633f6261
diff -r 7c6bd2366602 -r af9a6dac2611 src/eric7/Testing/TestingWidget.py
--- a/src/eric7/Testing/TestingWidget.py	Sat Dec 16 15:21:11 2023 +0100
+++ b/src/eric7/Testing/TestingWidget.py	Sat Dec 16 16:30:55 2023 +0100
@@ -202,7 +202,6 @@
             self.__project = ericApp().getObject("Project")
             self.__project.projectOpened.connect(self.__projectOpened)
             self.__project.projectClosed.connect(self.__projectClosed)
-            self.__projectEnvironmentMarker = self.tr("<project>")
         except KeyError:
             # we were called as a standalone application
             from eric7.VirtualEnv.VirtualenvManager import (  # __IGNORE_WARNING_I101__
@@ -222,7 +221,9 @@
             ericApp().registerObject("VirtualEnvManager", self.__venvManager)
 
             self.__project = None
-            self.__projectEnvironmentMarker = ""
+
+            self.debuggerCheckBox.setChecked(False)
+            self.debuggerCheckBox.setVisible(False)
 
         self.__discoverHistory = []
         self.__fileHistory = []
@@ -279,7 +280,10 @@
         @return path of the interpreter executable
         @rtype str
         """
-        if self.__project and venvName == self.__projectEnvironmentMarker:
+        if (
+            self.__project
+            and venvName == ericApp().getObject("DebugUI").getProjectEnvironmentString()
+        ):
             return self.__project.getProjectInterpreter()
         else:
             return self.__venvManager.getVirtualenvInterpreter(venvName)
@@ -295,7 +299,9 @@
         self.venvComboBox.clear()
         self.venvComboBox.addItem("")
         if self.__project and self.__project.isOpen():
-            self.venvComboBox.addItem(self.__projectEnvironmentMarker)
+            venvName = ericApp().getObject("DebugUI").getProjectEnvironmentString()
+            if venvName:
+                self.venvComboBox.addItem(venvName)
         self.venvComboBox.addItems(sorted(self.__venvManager.getVirtualenvNames()))
         self.venvComboBox.setCurrentText(currentText)
 
@@ -738,12 +744,12 @@
         if button == self.__discoverButton:
             self.__discoverTests()
         if button == self.__startButton:
-            self.startTests()
+            self.startTests(debug=self.debuggerCheckBox.isChecked())
             self.__saveRecent()
         elif button == self.__stopButton:
             self.__stopTests()
         elif button == self.__startFailedButton:
-            self.startTests(failedOnly=True)
+            self.startTests(failedOnly=True, debug=self.debuggerCheckBox.isChecked())
         elif button == self.__showCoverageButton:
             self.__showCoverageDialog()
         elif button == self.__showLogButton:
@@ -948,12 +954,15 @@
         self.__testExecutor.discover(config, [])
 
     @pyqtSlot()
-    def startTests(self, failedOnly=False):
+    def startTests(self, failedOnly=False, debug=False):
         """
         Public slot to start the test run.
 
-        @param failedOnly flag indicating to run only failed tests
-        @type bool
+        @param failedOnly flag indicating to run only failed tests (defaults to False)
+        @type bool (optional)
+        @param debug flag indicating to start the test run with debugger support
+            (defaults to False)
+        @type bool (optional)
         """
         if self.__mode in (TestingWidgetModes.RUNNING, TestingWidgetModes.DISCOVERY):
             return
@@ -992,6 +1001,7 @@
         else:
             coverageFile = ""
         interpreter = self.__determineInterpreter(self.__recentEnvironment)
+
         testCases = self.__selectedTestCases()
         if not testCases and self.discoveryList.topLevelItemCount() > 0:
             ok = EricMessageBox.yesNo(
@@ -1016,6 +1026,7 @@
             collectCoverage=self.coverageCheckBox.isChecked(),
             eraseCoverage=self.coverageEraseCheckBox.isChecked(),
             coverageFile=coverageFile,
+            venvName=self.__recentEnvironment,
         )
 
         self.__testExecutor = self.__frameworkRegistry.createExecutor(
@@ -1034,7 +1045,10 @@
         )
 
         self.__setRunningMode()
-        self.__testExecutor.start(config, [])
+        if debug:
+            self.__testExecutor.startDebug(config, [], ericApp().getObject("DebugUI"))
+        else:
+            self.__testExecutor.start(config, [])
 
     @pyqtSlot()
     def __stopTests(self):
@@ -1268,7 +1282,9 @@
         """
         Private slot to handle a project being opened.
         """
-        self.venvComboBox.insertItem(1, self.__projectEnvironmentMarker)
+        self.venvComboBox.insertItem(
+            1, ericApp().getObject("DebugUI").getProjectEnvironmentString()
+        )
         self.venvComboBox.setCurrentIndex(1)
         self.frameworkComboBox.setCurrentText(
             self.__project.getProjectTestingFramework()

eric ide

mercurial