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()