Wed, 27 Mar 2019 20:09:37 +0100
Unit Test: added capability to run test with debugger support and to stop the test on the first error or failure.
--- a/APIs/Python3/eric6.api Tue Mar 26 19:39:42 2019 +0100 +++ b/APIs/Python3/eric6.api Wed Mar 27 20:09:37 2019 +0100 @@ -238,7 +238,7 @@ eric6.DebugClients.Python.DCTestResult.DCTestResult.addUnexpectedSuccess?4(test) eric6.DebugClients.Python.DCTestResult.DCTestResult.startTest?4(test) eric6.DebugClients.Python.DCTestResult.DCTestResult.stopTest?4(test) -eric6.DebugClients.Python.DCTestResult.DCTestResult?1(dbgClient) +eric6.DebugClients.Python.DCTestResult.DCTestResult?1(dbgClient, failfast) eric6.DebugClients.Python.DebugBase.DebugBase._fnCache?8 eric6.DebugClients.Python.DebugBase.DebugBase._set_stopinfo?5(stopframe, returnframe) eric6.DebugClients.Python.DebugBase.DebugBase.bootstrap?4(target, args, kwargs) @@ -479,7 +479,7 @@ eric6.Debugger.DebugServer.DebugServer.clientThreadList?7 eric6.Debugger.DebugServer.DebugServer.clientThreadSet?7 eric6.Debugger.DebugServer.DebugServer.clientUtDiscovered?4(testCases, exceptionType, exceptionValue) -eric6.Debugger.DebugServer.DebugServer.clientUtFinished?4() +eric6.Debugger.DebugServer.DebugServer.clientUtFinished?4(status) eric6.Debugger.DebugServer.DebugServer.clientUtPrepared?4(result, exceptionType, exceptionValue) eric6.Debugger.DebugServer.DebugServer.clientUtStartTest?4(testname, doc) eric6.Debugger.DebugServer.DebugServer.clientUtStopTest?4() @@ -529,8 +529,8 @@ eric6.Debugger.DebugServer.DebugServer.remoteStepQuit?4() eric6.Debugger.DebugServer.DebugServer.remoteThreadList?4() eric6.Debugger.DebugServer.DebugServer.remoteUTDiscover?4(clientType, forProject, venvName, syspath, workdir, discoveryStart) -eric6.Debugger.DebugServer.DebugServer.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase, clientType="", forProject=False, venvName="", syspath=None, workdir="", discover=False, discoveryStart="", testCases=None) -eric6.Debugger.DebugServer.DebugServer.remoteUTRun?4() +eric6.Debugger.DebugServer.DebugServer.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase, clientType="", forProject=False, venvName="", syspath=None, workdir="", discover=False, discoveryStart="", testCases=None, debug=False) +eric6.Debugger.DebugServer.DebugServer.remoteUTRun?4(debug=False, failfast=False) eric6.Debugger.DebugServer.DebugServer.remoteUTStop?4() eric6.Debugger.DebugServer.DebugServer.setCallTraceEnabled?4(on) eric6.Debugger.DebugServer.DebugServer.setDebugging?4(on) @@ -648,8 +648,8 @@ eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteStepQuit?4() eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteThreadList?4() eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteUTDiscover?4(syspath, workdir, discoveryStart) -eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases) -eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteUTRun?4() +eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases, debug) +eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteUTRun?4(debug, failfast) eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteUTStop?4() eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteWatchpoint?4(cond, setWatch, temp=False) eric6.Debugger.DebuggerInterfaceNone.DebuggerInterfaceNone.remoteWatchpointEnable?4(cond, enable) @@ -691,8 +691,8 @@ eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteStepQuit?4() eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteThreadList?4() eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTDiscover?4(syspath, workdir, discoveryStart) -eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases) -eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTRun?4() +eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTPrepare?4(fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases, debug) +eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTRun?4(debug, failfast) eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteUTStop?4() eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteWatchpoint?4(cond, setWatch, temp=False) eric6.Debugger.DebuggerInterfacePython.DebuggerInterfacePython.remoteWatchpointEnable?4(cond, enable) @@ -8385,7 +8385,7 @@ eric6.PyUnit.UnittestDialog.QtTestResult.addUnexpectedSuccess?4(test) eric6.PyUnit.UnittestDialog.QtTestResult.startTest?4(test) eric6.PyUnit.UnittestDialog.QtTestResult.stopTest?4(test) -eric6.PyUnit.UnittestDialog.QtTestResult?1(parent) +eric6.PyUnit.UnittestDialog.QtTestResult?1(parent, failfast) eric6.PyUnit.UnittestDialog.UnittestDialog.closeEvent?4(event) eric6.PyUnit.UnittestDialog.UnittestDialog.hasFailedTests?4() eric6.PyUnit.UnittestDialog.UnittestDialog.insertDiscovery?4(start)
--- a/DebugClients/Python/DCTestResult.py Tue Mar 26 19:39:42 2019 +0100 +++ b/DebugClients/Python/DCTestResult.py Wed Mar 27 20:09:37 2019 +0100 @@ -17,15 +17,18 @@ For more details see unittest.py of the standard python distribution. """ - def __init__(self, dbgClient): + def __init__(self, dbgClient, failfast): """ Constructor @param dbgClient reference to the debug client @type DebugClientBase + @param failfast flag indicating to stop at the first error + @type bool """ TestResult.__init__(self) self.__dbgClient = dbgClient + self.failfast = failfast def addFailure(self, test, err): """
--- a/DebugClients/Python/DebugClientBase.py Tue Mar 26 19:39:42 2019 +0100 +++ b/DebugClients/Python/DebugClientBase.py Wed Mar 27 20:09:37 2019 +0100 @@ -907,6 +907,10 @@ else: self.cover = None + if params["debug"]: + Breakpoint.clear_all_breaks() + Watch.clear_all_watches() + self.sendJsonCommand("ResponseUTPrepared", { "count": self.test.countTestCases(), "exception": "", @@ -915,14 +919,27 @@ elif method == "RequestUTRun": from DCTestResult import DCTestResult - self.testResult = DCTestResult(self) + self.testResult = DCTestResult(self, params["failfast"]) if self.cover: self.cover.start() - self.test.run(self.testResult) + self.debugging = params["debug"] + if params["debug"]: + locals_ = locals() + self.threads.clear() + self.attachThread(mainThread=True) + sys.setprofile(None) + self.mainThread.run( + "result = self.test.run(self.testResult)\n", + localsDict=locals_) + result = locals_["result"] + else: + result = self.test.run(self.testResult) if self.cover: self.cover.stop() self.cover.save() - self.sendJsonCommand("ResponseUTFinished", {}) + self.sendJsonCommand("ResponseUTFinished", { + "status": 0 if result.wasSuccessful() else 1, + }) elif method == "RequestUTStop": self.testResult.stop()
--- a/Debugger/DebugServer.py Tue Mar 26 19:39:42 2019 +0100 +++ b/Debugger/DebugServer.py Wed Mar 27 20:09:37 2019 +0100 @@ -69,8 +69,8 @@ detected on the client side @signal clientSignal(signal) emitted after a signal has been generated on the client side - @signal clientExit(int) emitted with the exit status after the client has - exited + @signal clientExit(int, str, bool) emitted after the client has exited + giving the exit status, an exit message and an indication to be quiet @signal clientClearBreak(filename, lineno) emitted after the debug client has decided to clear a temporary breakpoint @signal clientBreakConditionError(fn, lineno) emitted after the client has @@ -136,7 +136,7 @@ clientException = pyqtSignal(str, str, list) clientSyntaxError = pyqtSignal(str, str, int, int) clientSignal = pyqtSignal(str, str, int, str, str) - clientExit = pyqtSignal(int, str) + clientExit = pyqtSignal(int, str, bool) clientBreakConditionError = pyqtSignal(str, int) clientWatchConditionError = pyqtSignal(str) clientRawInput = pyqtSignal(str, bool) @@ -1359,7 +1359,7 @@ def remoteUTPrepare(self, fn, tn, tfn, failed, cov, covname, coverase, clientType="", forProject=False, venvName="", syspath=None, workdir="", discover=False, - discoveryStart="", testCases=None): + discoveryStart="", testCases=None, debug=False): """ Public method to prepare a new unittest run. @@ -1395,6 +1395,8 @@ @type str @param testCases list of test cases to be loaded @type list of str + @param debug flag indicating to run unittest with debugging + @type bool """ if clientType and clientType not in self.getSupportedLanguages(): # a not supported client language was requested @@ -1420,15 +1422,23 @@ self.debuggerInterface.remoteUTPrepare( fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, - discover, discoveryStart, testCases) - self.debugging = False + discover, discoveryStart, testCases, debug) self.running = True + self.debugging = debug + if debug: + self.__restoreBreakpoints() + self.__restoreWatchpoints() - def remoteUTRun(self): + def remoteUTRun(self, debug=False, failfast=False): """ Public method to start a unittest run. + + @param debug flag indicating to run unittest with debugging + @type bool + @param failfast flag indicating to stop at the first error + @type bool """ - self.debuggerInterface.remoteUTRun() + self.debuggerInterface.remoteUTRun(debug, failfast) def remoteUTStop(self): """ @@ -1567,7 +1577,7 @@ """ if self.passive: self.__passiveShutDown() - self.clientExit.emit(int(status), message) + self.clientExit.emit(int(status), message, False) if Preferences.getDebugger("AutomaticReset") or (self.running and not self.debugging): self.debugging = False @@ -1767,12 +1777,19 @@ """ self.utTestSucceededUnexpected.emit(testname, testId) - def clientUtFinished(self): + def clientUtFinished(self, status): """ Public method to process the client unit test finished info. + + @param status exit status of the unit test + @type int """ self.utFinished.emit() + self.clientExit.emit(int(status), "", True) + self.debugging = False + self.running = False + def passiveStartUp(self, fn, exc): """ Public method to handle a passive debug connection.
--- a/Debugger/DebugUI.py Tue Mar 26 19:39:42 2019 +0100 +++ b/Debugger/DebugUI.py Wed Mar 27 20:09:37 2019 +0100 @@ -1013,7 +1013,7 @@ self.debugActGrp.setEnabled(True) - def __clientExit(self, status, message): + def __clientExit(self, status, message, quiet): """ Private method to handle the debugged program terminating. @@ -1021,58 +1021,64 @@ @type int @param message exit message of the debugged program @type str + @param quiet flag indicating to suppress exit info display + @type bool """ self.viewmanager.exit() self.__resetUI() - if not Preferences.getDebugger("SuppressClientExit") or status != 0: - if message: - info = self.tr("<p>Message: {0}</p>").format( - Utilities.html_uencode(message)) - else: - info = "" - if self.ui.currentProg is None: - E5MessageBox.information( - self.ui, Program, - self.tr('<p>The program has terminated with an exit' - ' status of {0}.</p>{1}').format(status, info)) - else: - E5MessageBox.information( - self.ui, Program, - self.tr('<p><b>{0}</b> has terminated with an exit' - ' status of {1}.</p>{2}') - .format(Utilities.normabspath(self.ui.currentProg), - status, info)) - else: - if message: - info = self.tr("Message: {0}").format( - Utilities.html_uencode(message)) - else: - info = "" - if self.ui.notificationsEnabled(): + if not quiet: + if not Preferences.getDebugger("SuppressClientExit") or \ + status != 0: + if message: + info = self.tr("<p>Message: {0}</p>").format( + Utilities.html_uencode(message)) + else: + info = "" if self.ui.currentProg is None: - msg = self.tr('The program has terminated with an exit' - ' status of {0}.\n{1}').format(status, info) + E5MessageBox.information( + self.ui, Program, + self.tr('<p>The program has terminated with an exit' + ' status of {0}.</p>{1}').format(status, info)) else: - msg = self.tr('"{0}" has terminated with an exit' - ' status of {1}.\n{2}')\ - .format(os.path.basename(self.ui.currentProg), - status, info) - self.ui.showNotification( - UI.PixmapCache.getPixmap("debug48.png"), - self.tr("Program terminated"), msg) - else: - if self.ui.currentProg is None: - self.appendStdout.emit( - self.tr('The program has terminated with an exit' - ' status of {0}.\n{1}\n').format(status, info)) - else: - self.appendStdout.emit( - self.tr('"{0}" has terminated with an exit' - ' status of {1}.\n{2}\n') + E5MessageBox.information( + self.ui, Program, + self.tr('<p><b>{0}</b> has terminated with an exit' + ' status of {1}.</p>{2}') .format(Utilities.normabspath(self.ui.currentProg), status, info)) + else: + if message: + info = self.tr("Message: {0}").format( + Utilities.html_uencode(message)) + else: + info = "" + if self.ui.notificationsEnabled(): + if self.ui.currentProg is None: + msg = self.tr( + 'The program has terminated with an exit status of' + ' {0}.\n{1}').format(status, info) + else: + msg = self.tr( + '"{0}" has terminated with an exit status of' + ' {1}.\n{2}').format( + os.path.basename(self.ui.currentProg), status, + info) + self.ui.showNotification( + UI.PixmapCache.getPixmap("debug48.png"), + self.tr("Program terminated"), msg) + else: + if self.ui.currentProg is None: + self.appendStdout.emit(self.tr( + 'The program has terminated with an exit status' + ' of {0}.\n{1}\n').format(status, info)) + else: + self.appendStdout.emit(self.tr( + '"{0}" has terminated with an exit status of' + ' {1}.\n{2}\n').format( + Utilities.normabspath(self.ui.currentProg), status, + info)) def __clientSyntaxError(self, message, filename, lineNo, characterNo): """
--- a/Debugger/DebuggerInterfaceNone.py Tue Mar 26 19:39:42 2019 +0100 +++ b/Debugger/DebuggerInterfaceNone.py Wed Mar 27 20:09:37 2019 +0100 @@ -423,7 +423,8 @@ return def remoteUTPrepare(self, fn, tn, tfn, failed, cov, covname, coverase, - syspath, workdir, discover, discoveryStart, testCases): + syspath, workdir, discover, discoveryStart, testCases, + debug): """ Public method to prepare a new unittest run. @@ -453,12 +454,19 @@ @type str @param testCases list of test cases to be loaded @type list of str + @param debug flag indicating to run unittest with debugging + @type bool """ return - def remoteUTRun(self): + def remoteUTRun(self, debug, failfast): """ Public method to start a unittest run. + + @param debug flag indicating to run unittest with debugging + @type bool + @param failfast flag indicating to stop at the first error + @type bool """ return
--- a/Debugger/DebuggerInterfacePython.py Tue Mar 26 19:39:42 2019 +0100 +++ b/Debugger/DebuggerInterfacePython.py Wed Mar 27 20:09:37 2019 +0100 @@ -946,7 +946,8 @@ }) def remoteUTPrepare(self, fn, tn, tfn, failed, cov, covname, coverase, - syspath, workdir, discover, discoveryStart, testCases): + syspath, workdir, discover, discoveryStart, testCases, + debug): """ Public method to prepare a new unittest run. @@ -976,6 +977,8 @@ @type str @param testCases list of test cases to be loaded @type list of str + @param debug flag indicating to run unittest with debugging + @type bool """ if fn: self.__scriptName = os.path.abspath(fn) @@ -997,13 +1000,24 @@ "discover": discover, "discoverystart": discoveryStart, "testcases": [] if testCases is None else testCases, + "debug": debug, }) - def remoteUTRun(self): + def remoteUTRun(self, debug, failfast): """ Public method to start a unittest run. + + @param debug flag indicating to run unittest with debugging + @type bool + @param failfast flag indicating to stop at the first error + @type bool """ - self.__sendJsonCommand("RequestUTRun", {}) + if debug: + self.__autoContinue = True + self.__sendJsonCommand("RequestUTRun", { + "debug": debug, + "failfast": failfast, + }) def remoteUTStop(self): """ @@ -1224,7 +1238,7 @@ params["count"], params["exception"], params["message"]) elif method == "ResponseUTFinished": - self.debugServer.clientUtFinished() + self.debugServer.clientUtFinished(params["status"]) elif method == "ResponseUTStartTest": self.debugServer.clientUtStartTest(
--- a/Documentation/Source/eric6.DebugClients.Python.DCTestResult.html Tue Mar 26 19:39:42 2019 +0100 +++ b/Documentation/Source/eric6.DebugClients.Python.DCTestResult.html Wed Mar 27 20:09:37 2019 +0100 @@ -90,13 +90,16 @@ </table> <a NAME="DCTestResult.__init__" ID="DCTestResult.__init__"></a> <h4>DCTestResult (Constructor)</h4> -<b>DCTestResult</b>(<i>dbgClient</i>) +<b>DCTestResult</b>(<i>dbgClient, failfast</i>) <p> Constructor </p><dl> <dt><i>dbgClient</i> (DebugClientBase)</dt> <dd> reference to the debug client +</dd><dt><i>failfast</i> (bool)</dt> +<dd> +flag indicating to stop at the first error </dd> </dl><a NAME="DCTestResult.addError" ID="DCTestResult.addError"></a> <h4>DCTestResult.addError</h4>
--- a/Documentation/Source/eric6.Debugger.DebugServer.html Tue Mar 26 19:39:42 2019 +0100 +++ b/Documentation/Source/eric6.Debugger.DebugServer.html Wed Mar 27 20:09:37 2019 +0100 @@ -83,10 +83,10 @@ <dd> emitted after an exception occured on the client side -</dd><dt>clientExit(int)</dt> +</dd><dt>clientExit(int, str, bool)</dt> <dd> -emitted with the exit status after the client has - exited +emitted after the client has exited + giving the exit status, an exit message and an indication to be quiet </dd><dt>clientGone(bool)</dt> <dd> emitted if the client went away (planned or @@ -909,10 +909,15 @@ </dd> </dl><a NAME="DebugServer.clientUtFinished" ID="DebugServer.clientUtFinished"></a> <h4>DebugServer.clientUtFinished</h4> -<b>clientUtFinished</b>(<i></i>) +<b>clientUtFinished</b>(<i>status</i>) <p> Public method to process the client unit test finished info. -</p><a NAME="DebugServer.clientUtPrepared" ID="DebugServer.clientUtPrepared"></a> +</p><dl> +<dt><i>status</i> (int)</dt> +<dd> +exit status of the unit test +</dd> +</dl><a NAME="DebugServer.clientUtPrepared" ID="DebugServer.clientUtPrepared"></a> <h4>DebugServer.clientUtPrepared</h4> <b>clientUtPrepared</b>(<i>result, exceptionType, exceptionValue</i>) <p> @@ -1594,7 +1599,7 @@ </dd> </dl><a NAME="DebugServer.remoteUTPrepare" ID="DebugServer.remoteUTPrepare"></a> <h4>DebugServer.remoteUTPrepare</h4> -<b>remoteUTPrepare</b>(<i>fn, tn, tfn, failed, cov, covname, coverase, clientType="", forProject=False, venvName="", syspath=None, workdir="", discover=False, discoveryStart="", testCases=None</i>) +<b>remoteUTPrepare</b>(<i>fn, tn, tfn, failed, cov, covname, coverase, clientType="", forProject=False, venvName="", syspath=None, workdir="", discover=False, discoveryStart="", testCases=None, debug=False</i>) <p> Public method to prepare a new unittest run. </p><dl> @@ -1645,13 +1650,24 @@ </dd><dt><i>testCases</i> (list of str)</dt> <dd> list of test cases to be loaded +</dd><dt><i>debug</i> (bool)</dt> +<dd> +flag indicating to run unittest with debugging </dd> </dl><a NAME="DebugServer.remoteUTRun" ID="DebugServer.remoteUTRun"></a> <h4>DebugServer.remoteUTRun</h4> -<b>remoteUTRun</b>(<i></i>) +<b>remoteUTRun</b>(<i>debug=False, failfast=False</i>) <p> Public method to start a unittest run. -</p><a NAME="DebugServer.remoteUTStop" ID="DebugServer.remoteUTStop"></a> +</p><dl> +<dt><i>debug</i> (bool)</dt> +<dd> +flag indicating to run unittest with debugging +</dd><dt><i>failfast</i> (bool)</dt> +<dd> +flag indicating to stop at the first error +</dd> +</dl><a NAME="DebugServer.remoteUTStop" ID="DebugServer.remoteUTStop"></a> <h4>DebugServer.remoteUTStop</h4> <b>remoteUTStop</b>(<i></i>) <p>
--- a/Documentation/Source/eric6.Debugger.DebugUI.html Tue Mar 26 19:39:42 2019 +0100 +++ b/Documentation/Source/eric6.Debugger.DebugUI.html Wed Mar 27 20:09:37 2019 +0100 @@ -394,7 +394,7 @@ </dd> </dl><a NAME="DebugUI.__clientExit" ID="DebugUI.__clientExit"></a> <h4>DebugUI.__clientExit</h4> -<b>__clientExit</b>(<i>status, message</i>) +<b>__clientExit</b>(<i>status, message, quiet</i>) <p> Private method to handle the debugged program terminating. </p><dl> @@ -404,6 +404,9 @@ </dd><dt><i>message</i> (str)</dt> <dd> exit message of the debugged program +</dd><dt><i>quiet</i> (bool)</dt> +<dd> +flag indicating to suppress exit info display </dd> </dl><a NAME="DebugUI.__clientGone" ID="DebugUI.__clientGone"></a> <h4>DebugUI.__clientGone</h4>
--- a/Documentation/Source/eric6.Debugger.DebuggerInterfaceNone.html Tue Mar 26 19:39:42 2019 +0100 +++ b/Documentation/Source/eric6.Debugger.DebuggerInterfaceNone.html Wed Mar 27 20:09:37 2019 +0100 @@ -590,7 +590,7 @@ </dd> </dl><a NAME="DebuggerInterfaceNone.remoteUTPrepare" ID="DebuggerInterfaceNone.remoteUTPrepare"></a> <h4>DebuggerInterfaceNone.remoteUTPrepare</h4> -<b>remoteUTPrepare</b>(<i>fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases</i>) +<b>remoteUTPrepare</b>(<i>fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases, debug</i>) <p> Public method to prepare a new unittest run. </p><dl> @@ -632,13 +632,24 @@ </dd><dt><i>testCases</i> (list of str)</dt> <dd> list of test cases to be loaded +</dd><dt><i>debug</i> (bool)</dt> +<dd> +flag indicating to run unittest with debugging </dd> </dl><a NAME="DebuggerInterfaceNone.remoteUTRun" ID="DebuggerInterfaceNone.remoteUTRun"></a> <h4>DebuggerInterfaceNone.remoteUTRun</h4> -<b>remoteUTRun</b>(<i></i>) +<b>remoteUTRun</b>(<i>debug, failfast</i>) <p> Public method to start a unittest run. -</p><a NAME="DebuggerInterfaceNone.remoteUTStop" ID="DebuggerInterfaceNone.remoteUTStop"></a> +</p><dl> +<dt><i>debug</i> (bool)</dt> +<dd> +flag indicating to run unittest with debugging +</dd><dt><i>failfast</i> (bool)</dt> +<dd> +flag indicating to stop at the first error +</dd> +</dl><a NAME="DebuggerInterfaceNone.remoteUTStop" ID="DebuggerInterfaceNone.remoteUTStop"></a> <h4>DebuggerInterfaceNone.remoteUTStop</h4> <b>remoteUTStop</b>(<i></i>) <p>
--- a/Documentation/Source/eric6.Debugger.DebuggerInterfacePython.html Tue Mar 26 19:39:42 2019 +0100 +++ b/Documentation/Source/eric6.Debugger.DebuggerInterfacePython.html Wed Mar 27 20:09:37 2019 +0100 @@ -719,7 +719,7 @@ </dd> </dl><a NAME="DebuggerInterfacePython.remoteUTPrepare" ID="DebuggerInterfacePython.remoteUTPrepare"></a> <h4>DebuggerInterfacePython.remoteUTPrepare</h4> -<b>remoteUTPrepare</b>(<i>fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases</i>) +<b>remoteUTPrepare</b>(<i>fn, tn, tfn, failed, cov, covname, coverase, syspath, workdir, discover, discoveryStart, testCases, debug</i>) <p> Public method to prepare a new unittest run. </p><dl> @@ -761,13 +761,24 @@ </dd><dt><i>testCases</i> (list of str)</dt> <dd> list of test cases to be loaded +</dd><dt><i>debug</i> (bool)</dt> +<dd> +flag indicating to run unittest with debugging </dd> </dl><a NAME="DebuggerInterfacePython.remoteUTRun" ID="DebuggerInterfacePython.remoteUTRun"></a> <h4>DebuggerInterfacePython.remoteUTRun</h4> -<b>remoteUTRun</b>(<i></i>) +<b>remoteUTRun</b>(<i>debug, failfast</i>) <p> Public method to start a unittest run. -</p><a NAME="DebuggerInterfacePython.remoteUTStop" ID="DebuggerInterfacePython.remoteUTStop"></a> +</p><dl> +<dt><i>debug</i> (bool)</dt> +<dd> +flag indicating to run unittest with debugging +</dd><dt><i>failfast</i> (bool)</dt> +<dd> +flag indicating to stop at the first error +</dd> +</dl><a NAME="DebuggerInterfacePython.remoteUTStop" ID="DebuggerInterfacePython.remoteUTStop"></a> <h4>DebuggerInterfacePython.remoteUTStop</h4> <b>remoteUTStop</b>(<i></i>) <p>
--- a/Documentation/Source/eric6.PyUnit.UnittestDialog.html Tue Mar 26 19:39:42 2019 +0100 +++ b/Documentation/Source/eric6.PyUnit.UnittestDialog.html Wed Mar 27 20:09:37 2019 +0100 @@ -96,13 +96,16 @@ </table> <a NAME="QtTestResult.__init__" ID="QtTestResult.__init__"></a> <h4>QtTestResult (Constructor)</h4> -<b>QtTestResult</b>(<i>parent</i>) +<b>QtTestResult</b>(<i>parent, failfast</i>) <p> Constructor </p><dl> -<dt><i>parent</i></dt> +<dt><i>parent</i> (UnittestDialog)</dt> <dd> -The parent widget. +reference to the parent widget +</dd><dt><i>failfast</i> (bool)</dt> +<dd> +flag indicating to stop at the first error </dd> </dl><a NAME="QtTestResult.addError" ID="QtTestResult.addError"></a> <h4>QtTestResult.addError</h4> @@ -221,7 +224,7 @@ <td>Constructor</td> </tr><tr> <td><a href="#UnittestDialog.__UTDiscovered">__UTDiscovered</a></td> -<td>Private slot to handle the utPrepared signal.</td> +<td>Private slot to handle the utDiscovered signal.</td> </tr><tr> <td><a href="#UnittestDialog.__UTPrepared">__UTPrepared</a></td> <td>Private slot to handle the utPrepared signal.</td> @@ -360,7 +363,7 @@ <h4>UnittestDialog.__UTDiscovered</h4> <b>__UTDiscovered</b>(<i>testCases, exc_type, exc_value</i>) <p> - Private slot to handle the utPrepared signal. + Private slot to handle the utDiscovered signal. </p><p> If the unittest suite was loaded successfully, we ask the client to run the test suite.
--- a/PyUnit/UnittestDialog.py Tue Mar 26 19:39:42 2019 +0100 +++ b/PyUnit/UnittestDialog.py Wed Mar 27 20:09:37 2019 +0100 @@ -119,6 +119,8 @@ if dbs: self.ui = ui + self.debuggerCheckBox.setChecked(True) + # virtual environment manager is only used in the integrated # variant self.__venvManager = e5App().getObject("VirtualEnvManager") @@ -131,6 +133,7 @@ self.__populateVenvComboBox) else: self.__venvManager = None + self.debuggerCheckBox.setVisible(False) self.venvComboBox.setVisible(bool(self.__venvManager)) self.venvLabel.setVisible(bool(self.__venvManager)) @@ -570,7 +573,7 @@ def __UTDiscovered(self, testCases, exc_type, exc_value): """ - Private slot to handle the utPrepared signal. + Private slot to handle the utDiscovered signal. If the unittest suite was loaded successfully, we ask the client to run the test suite. @@ -721,7 +724,7 @@ forProject=self.__forProject, workdir=workdir, venvName=venvName, syspath=sysPath, discover=discover, discoveryStart=discoveryStart, - testCases=testCases) + testCases=testCases, debug=self.debuggerCheckBox.isChecked()) else: # we are running as an application if discover and not discoveryStart: @@ -811,7 +814,8 @@ else: cover = None - self.testResult = QtTestResult(self) + self.testResult = QtTestResult( + self, self.failfastCheckBox.isChecked()) self.totalTests = test.countTestCases() self.__failedTests = [] self.__setRunningMode() @@ -849,7 +853,8 @@ self.totalTests = nrTests self.__setRunningMode() - self.__dbs.remoteUTRun() + self.__dbs.remoteUTRun(debug=self.debuggerCheckBox.isChecked(), + failfast=self.failfastCheckBox.isChecked()) @pyqtSlot() def __stopTests(self): @@ -947,6 +952,9 @@ self.progressLed.off() self.unittestStopped.emit() + + self.raise_() + self.activateWindow() def testFailed(self, test, exc, testId): """ @@ -1162,14 +1170,18 @@ For more details see pyunit.py of the standard Python distribution. """ - def __init__(self, parent): + def __init__(self, parent, failfast): """ Constructor - @param parent The parent widget. + @param parent reference to the parent widget + @type UnittestDialog + @param failfast flag indicating to stop at the first error + @type bool """ super(QtTestResult, self).__init__() self.parent = parent + self.failfast = failfast def addFailure(self, test, err): """
--- a/PyUnit/UnittestDialog.ui Tue Mar 26 19:39:42 2019 +0100 +++ b/PyUnit/UnittestDialog.ui Wed Mar 27 20:09:37 2019 +0100 @@ -170,8 +170,8 @@ </layout> </item> <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> <widget class="QCheckBox" name="coverageCheckBox"> <property name="toolTip"> <string>Select whether coverage data should be collected</string> @@ -181,7 +181,7 @@ </property> </widget> </item> - <item> + <item row="0" column="1"> <widget class="QCheckBox" name="coverageEraseCheckBox"> <property name="enabled"> <bool>false</bool> @@ -194,6 +194,26 @@ </property> </widget> </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="failfastCheckBox"> + <property name="toolTip"> + <string>Select to stop the test run on the first error or failure</string> + </property> + <property name="text"> + <string>Stop on First Error or Failure</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QCheckBox" name="debuggerCheckBox"> + <property name="toolTip"> + <string>Select to run the unittest with debugger support enabled</string> + </property> + <property name="text"> + <string>Run with Debugger</string> + </property> + </widget> + </item> </layout> </item> </layout> @@ -539,12 +559,14 @@ <tabstops> <tabstop>tabWidget</tabstop> <tabstop>discoverCheckBox</tabstop> + <tabstop>testsuitePicker</tabstop> <tabstop>discoveryPicker</tabstop> - <tabstop>testsuitePicker</tabstop> <tabstop>testComboBox</tabstop> <tabstop>venvComboBox</tabstop> <tabstop>coverageCheckBox</tabstop> <tabstop>coverageEraseCheckBox</tabstop> + <tabstop>failfastCheckBox</tabstop> + <tabstop>debuggerCheckBox</tabstop> <tabstop>discoveryList</tabstop> <tabstop>testsListWidget</tabstop> <tabstop>errorsListWidget</tabstop>
--- a/changelog Tue Mar 26 19:39:42 2019 +0100 +++ b/changelog Wed Mar 27 20:09:37 2019 +0100 @@ -25,6 +25,8 @@ -- removed the 'local' selection because it is obsolete -- added capability to auto-discover tests -- added capability to show auto-discovered tests and select from this list + -- added capability to stop the test on the first error or failure + -- added capability to run test with debugger support - Web Browser (NG) -- added these search engines to the default list: --- MetaGer
--- a/i18n/eric6_cs.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_cs.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6273,7 +6273,7 @@ <translation>Spojení z ilegálního hosta</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6287,13 +6287,13 @@ <translation><p>Pokus o spojení z ilegálního hosta <b>{0}</b>. Přijmout toto spojení?</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> @@ -6309,12 +6309,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished">Spustit debuger</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6322,7 +6322,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Spustit skript</translation> </message> @@ -6342,7 +6342,7 @@ <translation><b>Spustit skript</b><p>Nastavení parametrů příkazové řádky a spuštění skriptu bez debugeru. Pokud jsou v souboru neuložené změny, měly by se nejdříve uložit.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Spustit projekt</translation> </message> @@ -6442,7 +6442,7 @@ <translation><b>Profilovat projekt</b><p>Nastavení parametrů příkazové řádky a spuštění projektu s profilováním kódu. Pokud jsou v projektu neuložené změny, měly by se nejdříve uložit.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Debugovat skript</translation> </message> @@ -6462,7 +6462,7 @@ <translation><b>Debugovat skript</b><p>Nastavení parametrů příkazové řádky a aktuální řádky jako první python příkaz v aktuálním editačním okně. Pokud jsou ve skriptu neuložené změny, měly by se nejdříve uložit.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Debugovat projekt</translation> </message> @@ -6745,52 +6745,52 @@ <translation>Debug</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>Program, který je právě debugován, obsahuje nespecifikovanou syntaktickou chybu.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Objevila se neošetřená výjimka. Detaily naleznete v shell okně.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>Debugovaný program byl neočekávaně ukončen.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>Chyba v podmíněném breakpointu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>Pokrytí projektu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>Pokrytí skriptu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>V aktuálním projektu není definován hlavní skript. Zrušeno</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Profilovat projekt</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Profilovat skript</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>V aktuálním projektu není definován hlavní skript. Debugování není možné.</translation> </message> @@ -6800,12 +6800,12 @@ <translation>Zastavit běžící skript.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Chyba sledovacího bodu</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1403"/> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>Sledovací bod již existuje</translation> </message> @@ -6842,42 +6842,42 @@ <translation></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation><p>Soubor <b>{0}</b> na řádce <b>{1}</b>, písmeno <b>{2}</b>, obsahuje syntaktickou chybu <b>{3}</b>.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation><p>Debugovaný program vyvolal výjimku <b>{0}</b><br>"<b>{1}</b>"<br>Soubor: <b>{2}</b>, řádek: <b>{3}</b></p><p>Zastavit zde?</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation><p>Debugovaný program vyvolal výjimku <b>{0}</b><br>"<b>{1}</b>"</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation><p>Podmínka breakpointu <b>{0}, {1}</b> obsahuje syntaktickou chybu.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation><p>Sledovací bod <b>{0}</b> obsahuje syntaktickou chybu.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation><p>Sledovací bod '<b>{0}</b>' již existuje.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> + <location filename="../Debugger/DebugUI.py" line="1403"/> <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> <translation><p>Sledovací bod '<b>{0}</b>' pro proměnnou <b>{1}</b> již existuje.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation type="unfinished"></translation> </message> @@ -6897,51 +6897,51 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7437,22 +7437,22 @@ <translation type="unfinished">Spustit debuger</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation type="unfinished">Rodičovský proces</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation type="unfinished">Dětský proces</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished">Větvení klienta</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished">Pokračovat ve fork větvi.</translation> </message> @@ -7462,12 +7462,12 @@ <translation type="unfinished"><p>Debugovací backend nelze spustit.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -75898,7 +75898,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation></translation> </message> @@ -75964,67 +75964,67 @@ <translation>&Vymazat data pokrytí</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>Stav procesu:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Běží:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Počet běžících testů</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Selhalo:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Počet testů, které selhaly</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Chyby:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Počet testů s chybami</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Zbývá:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Počet testů, které se ještě mají vykonat</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Provedeno testů:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Selhání a chyby:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Seznam selhání a chyb</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Provedeno testů:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Selhání a chyby:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Seznam selhání a chyb</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -76033,7 +76033,7 @@ Dvojklik na položku zobrazí výpis zásobníku.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>V běhu</translation> </message> @@ -76068,12 +76068,12 @@ <translation><b>Zastavit test</b><p>Toto tlačítko zastaví běžící unittest.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Selhalo: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Chyby: </translation> </message> @@ -76083,27 +76083,27 @@ <translation type="obsolete">Musíte zadat soubor soupravy testu.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>Příprava soupravy testu</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>Běží</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Zobrazit zdroj</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation>Python soubory (*.py);;Všechny soubory (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation>Python3 soubory ({1});;Python2 soubory ({0});;Všechny soubory (*)</translation> </message> @@ -76123,57 +76123,57 @@ <translation type="obsolete">Doběhlo {0} testů za {1:.3f}s</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation>Selhalo: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation>Chyby: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation type="unfinished"></translation> </message> @@ -76193,7 +76193,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation type="unfinished"></translation> </message> @@ -76208,7 +76208,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> @@ -76270,22 +76270,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76294,7 +76294,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76309,17 +76309,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76328,22 +76328,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76352,6 +76352,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_de.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_de.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6280,7 +6280,7 @@ <translation>Verbindung von ungültigem Rechner</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6294,14 +6294,14 @@ <translation><p>Es wurde versucht, eine Verbindung von dem nicht zugelassenen Rechner <b>{0}</b> aufzubauen. Soll die Verbindung angenommen werden?</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation>Verbindung für passives Debuggen empfangen </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation>Verbindung für passives Debuggen geschlossen @@ -6318,12 +6318,12 @@ <translation><p>Die Debuggerschnittstelle <b>{0}</b> wurde bereits registriert. Anfrage wird ignoriert.</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation>Debugger starten</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation><p>Der Debuggertyp <b>{0}</b> wird nicht unterstützt oder ist nicht konfiguriert.</p></translation> </message> @@ -6331,7 +6331,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Skript ausführen</translation> </message> @@ -6346,7 +6346,7 @@ <translation>Das aktuelle Skript ausführen</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Projekt ausführen</translation> </message> @@ -6451,27 +6451,27 @@ <translation><b>Anhalten</b><p>Beende das Debuggen des laufenden Programms.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>Das untersuchte Programm enthält einen unspezifizierten Syntaxfehler.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Eine nicht abgefangene Ausnahme ist aufgetreten. Details finden Sie im Shell-Fenster.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>Das untersuchte Programm wurde unerwartet beendet.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Projekt debuggen</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>Das aktuelle Projekt besitzt kein Hauptskript. Debuggen ist nicht möglich.</translation> </message> @@ -6511,7 +6511,7 @@ <translation><b>Skript ausführen</b><p>Bestimme die Kommandozeilenparameter und führe das Skript außerhalb des Debuggers aus. Falls die Datei ungesicherte Änderungen hat, so können diese zunächst gesichert werden.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Skript debuggen</translation> </message> @@ -6546,7 +6546,7 @@ <translation><b>Projekt debuggen</b><p>Bestimme die Kommandozeilenparameter und setze die erste ausführbare Python-Zeile des Hauptskriptes des aktuellen Projektes als aktuelle Zeile. Falls Dateien des aktuellen Projektes ungesicherte Änderungen haben, so können diese zunächst gesichert werden.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>Für das aktuelle Projekt ist kein Hauptskript festgelegt. Abbruch</translation> </message> @@ -6596,12 +6596,12 @@ <translation><b>Abdeckungslauf des Projektes</b><p>Bestimme die Kommandozeilenparameter und führe das Hauptskript des aktuellen Projektes unter Kontrolle eines Abdeckungsanalysetools aus. Falls Dateien des aktuellen Projektes ungesicherte Änderungen haben, so können diese zunächst gesichert werden.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>Abdeckung des Projektes</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>Abdeckung des Skriptes</translation> </message> @@ -6646,12 +6646,12 @@ <translation><b>Projektprofil</b><p>Bestimme die Kommandozeilenparameter und führe das Hauptskript des aktuellen Projektes unter Kontrolle des Python-Profilers aus. Falls Dateien des aktuellen Projektes ungesicherte Änderungen haben, so können diese zunächst gesichert werden.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Projektprofil</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Skriptprofil</translation> </message> @@ -6756,17 +6756,17 @@ <translation><b>Variablenfilter</b><p>Konfigurieren der Variablenfilter. Nur Variablen mit einem Typ, der nicht ausgewählt ist, werden im globalen oder lokalen Variablenfenster während einer Debuggingsitzung angezeigt.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation><p>Das untersuchte Programm erzeugte die Ausnahme <b>{0}</b><br>„<b>{1}</b>“</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>Fehler in Haltepunktbedingung</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation><p>Die Bedingung des Haltepunktes <b>{0}, {1}</b> enthält einen Syntaxfehler.</p></translation> </message> @@ -6809,12 +6809,12 @@ <translation>Debug</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation><p>Das untersuchte Programm erzeugte die Ausnahme <b>{0}</b><br>„<b>{1}</b>“<br>Datei: <b>{2}</b>, Zeile: <b>{3}</b></p><p>Anhalten?</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation><p>Die Datei <b>{0}</b> enthält den Syntaxfehler <b>{1}</b> in Zeile <b>{2}</b>, Position <b>{3}</b>.</p></translation> </message> @@ -6824,27 +6824,27 @@ <translation>Halte das laufende Skript an.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Fehler in Beobachtungsausdruck</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation><p>Der Beobachtungsausdrucks <b>{0}</b> enthält einen Syntaxfehler.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation><p>Ein Beobachtungsausdruck „<b>{0}</b>“ existiert bereits.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> - <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> - <translation><p>Ein Beobachtungsausdruck „<b>{0}</b>“ für die Variable <b>{1}</b> existiert bereits.</p></translation> - </message> - <message> <location filename="../Debugger/DebugUI.py" line="1403"/> + <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> + <translation><p>Ein Beobachtungsausdruck „<b>{0}</b>“ für die Variable <b>{1}</b> existiert bereits.</p></translation> + </message> + <message> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>Beobachtungsausdruck existiert bereits</translation> </message> @@ -6886,7 +6886,7 @@ <translation>Haltepunkt bearbeiten …</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation>Programm beendet</translation> </message> @@ -6906,46 +6906,46 @@ <translation><b>Anhalten</b><p>Dies hält das Skript, das im Debugger läuft, an.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation><p>Das Programm erzeugte das Signal "{0}".<br/>Datei: <b>{1}</b>, Zeile: <b>{2}</b></p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation><p>Nachricht: {0}</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation><p>Das Programm wurde mit dem Status {0} beendet.</p>{1}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation><p><b>{0}</b> wurde mit dem Status {1} beendet.</p>{2}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation>Nachricht: {0}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation>Das Programm wurde mit dem Status {0} beendet. {1}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation>„{0}“ wurde mit dem Status {1} beendet. {2}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> @@ -6954,7 +6954,7 @@ </translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7462,32 +7462,32 @@ <translation><p>Der Debugger konnte nicht gestartet werden.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation>Vaterprozess</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation>Kindprozess</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation>Client forkt</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation>Wähle den zu folgenden Forkpfad.</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation>Fehler im Debugprotokoll</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation><p>Die vom Debugger empfangene Antwort konnte nicht dekodiert werden. Bitte berichten sie diesen Fehler zusammen mit den empfangenen Daten an die eric Bugs Emailadresse.</p><p>Fehler: {0}</p><p>Daten:<br/>{1}</p></translation> </message> @@ -76091,37 +76091,37 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>Modultest</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>Bereite Modultest vor</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation>Misserfolge: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation>Fehler: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Misserfolge: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Fehler: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>Führe aus</translation> </message> @@ -76175,67 +76175,67 @@ <translation>Abdeckungsdaten &löschen</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>Fortschritt:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Ausgeführt:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Anzahl durchgeführter Tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Misserfolge:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Anzahl der Misserfolge</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Fehler:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Anzahl fehlerhafter Tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Verbleibend:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Anzahl verbleibender Tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Durchgeführte Tests:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Misserfolge und Fehler:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Liste der Misserfolge und Fehler</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Durchgeführte Tests:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Misserfolge und Fehler:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Liste der Misserfolge und Fehler</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -76254,7 +76254,7 @@ <translation>Halte den laufenden Modultest an</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>Leerlauf</translation> </message> @@ -76279,62 +76279,62 @@ <translation><b>Modultest anhalten</b><p>Dieser Knopf hält den laufenden Modultest an.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Zeige Quelltext</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation>Python-Dateien (*.py);;Alle Dateien (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation>Python 3-Dateien ({1});;Python 2-Dateien ({0});;Alle Dateien (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation>Übersprungen:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation>Anzahl übersprungener Tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation>Erwartete Misserfolge:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation>Anzahl der Test, deren Misserfolg erwartet wurde</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation>Unerwartete Erfolge:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation>Anzahl der Tests, die unerwartet erfolgreich waren</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation> Übersprungen: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation> Erwarteter Mißerfolg</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation> Unerwarteter Erfolg</translation> </message> @@ -76354,7 +76354,7 @@ <translation><b>Fehlerhafte wiederholen</b><p>Dieser Knopf wiederholt alle fehlerhaften Tests des ausgewählten Modultests.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation>%v/%m Tests</translation> </message> @@ -76369,7 +76369,7 @@ <translation>Ausführungsparameter</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation>Fortschritt</translation> </message> @@ -76434,22 +76434,22 @@ <translation>&Virtuelle Umgebung:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation>Ergebnisse</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation>Unittest mit Autoerkennung</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation>Es muss ein Startverzeichnis für die Autoerkennung eingegeben werden.</translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation> <numerusform>%n Test in {0:.3f}s ausgeführt</numerusform> @@ -76457,7 +76457,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation>Erkennungsergebnisse</translation> </message> @@ -76472,17 +76472,17 @@ <translation>Erkenne Tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation>Erkenne Tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation><p>Testerkennung ist nicht möglich.</p><p>{0}</p></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation> <numerusform>%n Test erkannt</numerusform> @@ -76490,22 +76490,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation><p>Testerkennung ist nicht möglich.</p><p>{0}<br/>{1}</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation>Es must Auto-Erkennung ausgewählt oder eine Testsuitedatei oder ein Testname in Punktnotation eingegeben werden.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation><Unbekannter Test></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation><p>Test <b>{0}</b> kann nicht ausgeführt werden.</p><p>{1}<br/>{2}</p></translation> </message> @@ -76514,6 +76514,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation><b>Erkennen</b><p>Dieser Knopf startet die Erkennung aller verfügbarer Tests.</p></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation>Auswählen, um den Testlauf beim ersten Fehler oder Fehlschlag zu stoppen</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation>Bei erstem Fehler oder Fehlschlag stoppen</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation>Auswäglen, um den Unittest mit aktivierter Debuggerunterstützung auszuführen</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation>Mit Debugger ausführen</translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_empty.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_empty.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6238,31 +6238,31 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6270,7 +6270,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation type="unfinished"></translation> </message> @@ -6290,7 +6290,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation type="unfinished"></translation> </message> @@ -6390,7 +6390,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation type="unfinished"></translation> </message> @@ -6410,7 +6410,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation type="unfinished"></translation> </message> @@ -6745,153 +6745,153 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> - <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../Debugger/DebugUI.py" line="1403"/> + <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation type="unfinished"></translation> </message> @@ -7388,32 +7388,32 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -75472,7 +75472,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation type="unfinished"></translation> </message> @@ -75531,114 +75531,114 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation type="unfinished"></translation> </message> @@ -75688,62 +75688,62 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation type="unfinished"></translation> </message> @@ -75805,29 +75805,29 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -75842,39 +75842,39 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -75883,6 +75883,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_en.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_en.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6235,20 +6235,20 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> @@ -6264,12 +6264,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6277,7 +6277,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation type="unfinished"></translation> </message> @@ -6297,7 +6297,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation type="unfinished"></translation> </message> @@ -6397,7 +6397,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation type="unfinished"></translation> </message> @@ -6417,7 +6417,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation type="unfinished"></translation> </message> @@ -6737,102 +6737,102 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> - <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../Debugger/DebugUI.py" line="1403"/> + <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation type="unfinished"></translation> </message> @@ -6852,51 +6852,51 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7395,32 +7395,32 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -75521,7 +75521,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation type="unfinished"></translation> </message> @@ -75570,74 +75570,74 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation type="unfinished"></translation> </message> @@ -75672,92 +75672,92 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation type="unfinished"></translation> </message> @@ -75777,7 +75777,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation type="unfinished"></translation> </message> @@ -75792,7 +75792,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> @@ -75854,22 +75854,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation> <numerusform>Ran %n test in {0:.3f}s</numerusform> @@ -75877,7 +75877,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -75892,17 +75892,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation> <numerusform>Discovered %n Test</numerusform> @@ -75910,22 +75910,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -75934,6 +75934,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_es.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_es.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6273,7 +6273,7 @@ <translation>Conexión desde un host ilegal</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6287,14 +6287,14 @@ <translation><p>Se ha intentado una conexión desde el host ilegal <b>{0}</b>. ¿Aceptar esta conexión?.</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation>Recibida conexión pasiva de depuración </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation>Cerrada conexión pasiva de depuración @@ -6311,12 +6311,12 @@ <translation><p>La interfaz de depurador <b>{0}</b> ya está registrada. Se ignorará esta solicitud.</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation>Iniciar Depurador</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation><p>Este tipo de depurador, <b>{0}</b>, no está soportado o no está configurado.</p></translation> </message> @@ -6324,7 +6324,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Ejecutar Script</translation> </message> @@ -6344,7 +6344,7 @@ <translation><b>Ejecutar Script</b><p>Establece los parámetros de la línea de comandos y ejecuta el script fuera del depurador. Si tiene cambios sin guardar, deben ser guardados primero.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Ejecutar Proyecto</translation> </message> @@ -6444,7 +6444,7 @@ <translation><b>Hacer Profiling del Proyecto</b><p>Establecer los argumentos de línea de comandos y hacer profiling del proyecto actual. Si hay archivos que tienen cambios sin guardar, se puede guardar primero.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Depurar Script</translation> </message> @@ -6464,7 +6464,7 @@ <translation><b>Depurar Script</b><p>Establecer los argumentos de línea de comandos y establecer la línea actual en la ventana actual de edición como la primera sentencia Python ejecutable. Si el archivo tiene cambios sin guardar, se puede guardar primero.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Depurar proyecto</translation> </message> @@ -6752,62 +6752,62 @@ <translation>Depurar</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>El programa en depuración contiene un error de sintaxis no especificado.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Ha saltado una excepción que no ha sido manejada. Vea la ventana de shell para mas detalles.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>El programa en depuración ha terminado inesperadamente.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>Error en la condición del Breakpoint</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>Cobertura del Proyecto</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>Cobertura del Script</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>No hay script principal definido para el proyecto actual. Abortando</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Profiling del proyecto</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Profiling del script</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>No hay script principal definido para el proyecto actual. La depuración no es posible.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Error en la Expresión a Examinar</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1403"/> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>La expresión a Examinar ya existe</translation> </message> @@ -6844,42 +6844,42 @@ <translation>Shift+F12</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation><p>El archivo <b>{0}</b> contiene el error de sintaxis <b>{1}</b> en la línea<b>{2}</b>, carácter <b>{3}</b>.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation><p>El programa en depuración ha lanzado la excepción <b>{0}</b><br>"<b>{1}</b>"<br>Archivo: <b>{2}</b>, Línea: <b>{3}</b></p><p>¿Interrumpir aquí?</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation><p>El programa en depuración ha lanzado la excepción <b>{0}</b><br>"<b>{1}</b>"</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation><p>La condición del punto de ruptura <b>{0},{1}</b> tiene un error de sintaxis.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation><p>La expresión a examinar <b>{0}</b> contiene un error de sintaxis.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation><p>Una expresión a examinar '<b>{0}</b>' ya existe.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> + <location filename="../Debugger/DebugUI.py" line="1403"/> <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> <translation><p>Una expresión a examinar '<b>{0}</b>' para la variable <b>{1}</b> ya existe.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation>Programa terminado</translation> </message> @@ -6899,46 +6899,46 @@ <translation><b>Detener</b><p>Esto detiene el script que está corriendo en el backend del depurador.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation><p>El programa ha generado la señal "{0}".<br/>Archivo: <b>{1}</b>, Línea: <b>{2}</b></p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation><p>Mensaje: {0}</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation><p>El programa ha terminato con estado de salida {0}.</p>{1}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation><p><b>{0}</b> ha terminado con estado de salida {1}.</p>{2}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation>Mensaje: {0}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation>El programa ha terminado con estado de salida {0}. {1}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation>"{0}" ha terminado con estado de salida {1}. {2}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> @@ -6947,7 +6947,7 @@ </translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7456,32 +7456,32 @@ <translation><p>No ha sido posible lanzar el extremo del depurador.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation>Proceso Padre</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation>Proceso hijo</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation>Fork del cliente</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation>Seleccionar la rama de fork para continuar.</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation>Error de Protocolo de Depuración</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation><p>La respuesta recibida desde el backend del depurador no se ha podido descodificar. Por favor, informar de este problema junto con los datos recibidos a la dirección de email para bugs de eric.</p><p>Error: {0}</p><p>Datos:<br/>{1}</p></translation> </message> @@ -76130,7 +76130,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>Test Unitario</translation> </message> @@ -76198,67 +76198,67 @@ <translation>Borrar datos de cob&ertura</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>Progreso:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Ejecutar:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Número de tests ejecutados</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Fallidos:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Número de tests fallidos</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Errores:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Número de errores de test</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Quedan:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Número de tests a ejecutar</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Tests ejecutados:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Fallidos y con error:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Lista de fallidos y con error</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Tests ejecutados:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Fallidos y con error:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Lista de fallidos y con error</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -76267,7 +76267,7 @@ Un doble click en una entrada mostrará el trazado correspondiente.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>Desocupado</translation> </message> @@ -76302,12 +76302,12 @@ <translation><b>Detener Test</b><p>Este botón detiene un test unitario en ejecución.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Fallido: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Error: </translation> </message> @@ -76317,27 +76317,27 @@ <translation type="obsolete">Debe introducir un archivo de suite de tests.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>Preparando Suite de Tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>Ejecutando</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Mostrar código fuente</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation>Archivos Python (*.py);;Todos los Archivos (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation>Archivos Python3 ({1});;Archivos Python2 ({0});;Todos los Archivos (*)</translation> </message> @@ -76357,57 +76357,57 @@ <translation type="obsolete">Se han ejecutado {0} tests en {1:.3f}s</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation>Fallido: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation>Error: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation>Ignorados:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation>Número de tests ignorados</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation>Fallos Esperados:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation>Número de tests con fallo esperado</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation>Éxitos Inesperados:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation>Número de tests con éxito inesperado</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation> Ignorados: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation> Fallo Esperado</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation> Éxito Inesperado</translation> </message> @@ -76427,7 +76427,7 @@ <translation><b>Re-ejecución Fallida</b><p>Este botón re-ejecuta todos los tests fallidos del testsuite seleccionado.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation>%v/%m Tests</translation> </message> @@ -76442,7 +76442,7 @@ <translation>Ejecutar Parámetros</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation>Progreso</translation> </message> @@ -76504,22 +76504,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished">Resultados</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76527,7 +76527,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76542,17 +76542,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76560,22 +76560,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76584,6 +76584,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_fr.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_fr.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6265,7 +6265,7 @@ <translation>Connexion en provenance d'un hote illégal</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6277,13 +6277,13 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> @@ -6299,12 +6299,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished">Démarrage du débogueur</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6312,7 +6312,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Lancer le script</translation> </message> @@ -6332,7 +6332,7 @@ <translation><b>Lancer le script</b><p>Entrer les arguments de la ligne de commande et lancer le script sans le débogueur. Si le script a des modifications, elles doivent d'abord être enregistrées.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Lancer le projet</translation> </message> @@ -6432,7 +6432,7 @@ <translation><b>Profiler le projet</b><p>Entrer les arguments de la ligne de commande et profiler le projet. Si des fichiers du projet ont été modifiés, ils doivent d'abord être enregistrés.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Déboguer le script</translation> </message> @@ -6452,7 +6452,7 @@ <translation><b>Deboguer le script</b><p>Entrer les arguments de la ligne de commande et donner la ligne qui correspond à la première instruction Python. Si le fichier a été modifié, il doit d'abord être sauvé.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Déboguer le projet</translation> </message> @@ -6657,47 +6657,47 @@ <translation>&Point d'arrêts</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>Le programme débogué contient une erreur de syntaxe non identifiée.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Une erreur imprévue est apparue. Regardez les détails dans la fenêtre shell.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>Le programme débogué s'est terminé de façon prématurée.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>Coverage du projet</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>Coverage du Script</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>Il n'y a pas de script principal défini dans le projet en cours. Abandon</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Profil du projet</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Profil du Script</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>Il n'y a pas de script principal défini dans le projet en cours. Débogage impossible.</translation> </message> @@ -6742,7 +6742,7 @@ <translation><b>Filtre de Variables</b><p>Configure le filtre de variables. Seuls les types de variables non sélectionnés sont affichés dans la fenêtre des variables globales (resp. locales) pendant la session de débogage.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>Erreur de condition pour le point d'arrêt</translation> </message> @@ -6790,12 +6790,12 @@ <translation>Arrête le run en cours.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Erreur dans l'expression</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1403"/> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>L'expression existe déjà</translation> </message> @@ -6832,42 +6832,42 @@ <translation type="unfinished">Shift+F12</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation type="unfinished"><p>L'expression de contrôle '<b>{0}</b>' existe déjà.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> + <location filename="../Debugger/DebugUI.py" line="1403"/> <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> <translation type="unfinished"><p>L'expression de contrôle '<b>{0}</b>' pour la variable <b>{1}</b> existe déjà.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation type="unfinished"></translation> </message> @@ -6887,51 +6887,51 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7436,32 +7436,32 @@ <translation type="unfinished"><p>Impossible de lancer le débogueur en arrière-plan.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -75954,17 +75954,17 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>Tests unitaires</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Echec: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Erreur:</translation> </message> @@ -75974,12 +75974,12 @@ <translation type="obsolete">Vous devez entrer un fichier test correct.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>Préparation de Testsuite</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>En cours d'execution</translation> </message> @@ -76045,67 +76045,67 @@ <translation>&Supprimer les données de coverage</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>Etat de progression:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Execution:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Nombre d'executions tests</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Echecs:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Nombre d'echecs</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Erreurs:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Nombre d'erreurs</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Restants:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Nombre de tests restants</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Tests effectués:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Echecs et erreurs:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Liste des echecs et erreurs</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Tests effectués:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Echecs et erreurs:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Liste des echecs et erreurs</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -76124,7 +76124,7 @@ <translation>Stoppe le test unitest en cours</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>Idle</translation> </message> @@ -76149,72 +76149,72 @@ <translation><b>Stopper le test</b><p>Stoppe le test unittest en cours.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Afficher les sources</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation type="unfinished"></translation> </message> @@ -76234,7 +76234,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation type="unfinished"></translation> </message> @@ -76249,7 +76249,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> @@ -76311,22 +76311,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76334,7 +76334,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76349,17 +76349,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76367,22 +76367,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76391,6 +76391,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_it.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_it.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6280,7 +6280,7 @@ <translation>Connessione da un non vietato</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6292,13 +6292,13 @@ <translation><p>Una connessione è stata tentata da un host vietato <b>{0}</b>. Accettare questa connessione ?</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> @@ -6314,12 +6314,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6327,7 +6327,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Esegui Script</translation> </message> @@ -6347,7 +6347,7 @@ <translation><b>Esegui Script</b><p>Imposta gli argomenti della linea di comando ed esegue lo script al di fuori del debugger. Se il file non è stato salvato può essere salvato prima.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Esegui Progetto</translation> </message> @@ -6447,7 +6447,7 @@ <translation><b>Profila Progetto</b><p>Imposta gli argomenti della linea di comando e profila il progetto. Se file del progetto corrente non sono stati salvati, è possibile salvarli prima.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Debug dello script</translation> </message> @@ -6467,7 +6467,7 @@ <translation><b>Debug dello Script</b><p>Imposta gli argomenti della linea di comando e imposta la linea corrente per essere la prima istruzione eseguibile di Python della finestra dell'editor. Se il file ha modifiche non salvate è possibile salvarle prima.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Debug del Progetto</translation> </message> @@ -6672,47 +6672,47 @@ <translation>&Breakpoints</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>Il programma che viene debuggato contiene un errore di sintassi non specificato.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Un'eccezione non gestita è occorso. Guarda la finestra di shell per dettagli.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>Il programma debuggato è terminato in maniera inaspettata.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>Analisi del Progetto</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>Analisi delle Script</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>Non c'è uno script principale definito per il progetto. Esco</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Profilazione del progetto</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Profilazione dello script</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>Non c'è uno script principale per il progetto. Non è possibile il debug.</translation> </message> @@ -6757,7 +6757,7 @@ <translation><b>Filtro tipo variabili</b><p>Configura il filtro per i tipi variabile. Solo i tipi di variabile che non sono selezionati sono mostrati nella finestra delle variabili globali o locali durante una sessione di debug. </p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>Errore condizione di interruzione</translation> </message> @@ -6805,12 +6805,12 @@ <translation>Ferma lo script in esecuzione.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Errore espressione di watch</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1403"/> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>L'espressione di controllo esiste già</translation> </message> @@ -6847,47 +6847,47 @@ <translation>Shift+F12</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation><p>Il file <b>{0}</b> contiene l'errore di sintassi <b>{1}</b> alla linea <b>{2}</b>, carattere <b>{3}</b>.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation><p>Il programma in debug ha sollevato un'eccezione <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Linea: <b>{3}</b></p><p>Interrompere qui ?</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation><p>Il programma debuggato ha sollevato un'eccezione <b>{0}</b><br>"<b>{1}</b>"</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation><p>La condizione del breakpoint <b>{0}, {1}</b> contiene un errore di sintassi.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation><p>L'espressione <b>{0}</b> contiene un errore di sintassi.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation><p>L'espressione '<b>{0}</b>' esiste già.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> + <location filename="../Debugger/DebugUI.py" line="1403"/> <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> <translation><p>L'espressione '<b>{0}</b>' per la variabile <b>{1}</b> esiste già.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation>Programma terminato</translation> </message> @@ -6907,46 +6907,46 @@ <translation><b>Ferma</b><p>Questo ferma lo script in esecuzione nel backend del debugger.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7451,32 +7451,32 @@ <translation type="unfinished"><p>Il debugger non può essere avviato.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation type="unfinished">Processo padre</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation type="unfinished">Processo figlio</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished">Lancio processo figlio in corso</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished">Seleziona il client da seguire.</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -76008,17 +76008,17 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>Unittest</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Failure:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Error: </translation> </message> @@ -76028,12 +76028,12 @@ <translation type="obsolete">Devi inserire il file di una suite di test.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>Preparazione Testsuite</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>In esecuzione</translation> </message> @@ -76101,67 +76101,67 @@ <translation>Canc&ella di dati di coverage</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>Avanzamento:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Esegui:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Numero di test eseguiti</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Fallimenti:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Numero di test falliti</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Errori:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Numero di errori nei test</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Rimanenti:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Numero di test da eseguire</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Test eseguiti:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Falliment ed errori:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Lista dei fallimenti e degli errori</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Test eseguiti:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Falliment ed errori:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Lista dei fallimenti e degli errori</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -76180,7 +76180,7 @@ <translation>Ferma l'esecuzione della unittest</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>Attesa</translation> </message> @@ -76205,17 +76205,17 @@ <translation><b>Ferma test</b><p>Questo pulsante ferma una unitttest in esecuzione.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Mostra sorgenti</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation>File Python (*.py);;Tutti i File (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation>File Python3 ({0});;File Python1({1});;Tutti i File (*)</translation> </message> @@ -76235,57 +76235,57 @@ <translation type="obsolete">Eseguiti {0} test in {1:.3f} s</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation>Fallimenti: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation>Errori: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation type="unfinished"></translation> </message> @@ -76305,7 +76305,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation type="unfinished"></translation> </message> @@ -76320,7 +76320,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> @@ -76382,22 +76382,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished">Risultati</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76405,7 +76405,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76420,17 +76420,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76438,22 +76438,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76462,6 +76462,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_pt.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_pt.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6289,7 +6289,7 @@ <translation><p>O anfitrião ilegal <b>{0}</b> tentou conectar. Aceitar esta conexão?</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6298,14 +6298,14 @@ </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation>Conexão de depuração passiva recebida </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation>Conexão de depuração passiva fechada @@ -6322,12 +6322,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished">Iniciar o Depurador</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6335,7 +6335,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Executar Script</translation> </message> @@ -6355,7 +6355,7 @@ <translation><b>Executar Script</b><p>Definir os argumentos da linha de comandos e executar o script fora do depurador. Poderão gravar-se primeiro as alterações que estejam por gravar.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Executar Projeto</translation> </message> @@ -6455,7 +6455,7 @@ <translation><b>Perfilar Projeto</b><p>Define os argumentos da linha de comandos e perfila o projeto atual. Poderá gravar antes os ficheiros alterados por gravar.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Depurar Script</translation> </message> @@ -6475,7 +6475,7 @@ <translation><b>Depurar Script</b><p>Definir os argumentos da linha de comandos e definir a linha atual para que seja a primeira instrução Python executável da janela do editor atual. Poderão gravar-se primeiro as alterações que estejam por gravar.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Depurar projeto</translation> </message> @@ -6795,107 +6795,107 @@ <translation>Depurar</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>O programa a depurar tem um erro de sintaxe não especificado.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation><p>O ficheiro <b>{0}</b> tem um erro de sintaxe <b>{1}</b> na linha <b>{2}</b>, caráter <b>{3}</b>.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Ocurreu uma exceção sem tratamento. Ver a janela da shell para mais detalhes.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation><p>O programa depurado provocou a exceção <b>{0}</b><br>"<b>{1}</b>"<br>Ficheiro: <b>{2}</b>, Linha :<b>{3}</b></p><p>Interromper aqui?</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation><p>O programa depurado provocou a exceção <b>{0}</b><br>"<b>{1}</b>"</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>O programa a depurar acabou inesperadamente.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>Erro de Condição de Ponto de Interrupção</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation><p>A condição do ponto de interrupção <b>{0}, {1}</b>tem um erro de sintaxe.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Observar Erro de Expressão</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> - <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../Debugger/DebugUI.py" line="1403"/> + <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>O projeto atual não tem um script principal definido. A cancelar</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Perfil de Projeto</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Perfil do Script</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>O projeto atual não tem um script principal definido. Impossível depurar.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation>Programa Terminado</translation> </message> @@ -6915,46 +6915,46 @@ <translation><b>Parar</b><p>Parar o script em execução na instalação de retaguarda do depurador.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7459,32 +7459,32 @@ <translation type="unfinished"><p>A instalação de retaguarda do depurador não pode iniciar.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation type="unfinished">Processo Pai</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation type="unfinished">Processo Filho</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished">Bifurcação do Cliente</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished">Selecionar o ramo da bifurcação a seguir.</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -75827,7 +75827,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>Teste Unitário</translation> </message> @@ -75894,67 +75894,67 @@ <translation>&Apagar dados de cobertura</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>Progresso:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Execução:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Número de execuções de testes</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Falhos:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Número de testes com falhos</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Erros:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Número de testes com erros</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Restante:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Número de testes a executar</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Testes executados:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Falhos e Erros:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Lista de Erros e Falhos</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Testes executados:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Falhos e Erros:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Lista de Erros e Falhos</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -75963,7 +75963,7 @@ Duplo clique numa entrada mostrará o respetivo rastreio.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>Inativo</translation> </message> @@ -75998,22 +75998,22 @@ <translation><b>Parar Teste</b><p>Este botão para a execução do teste unitário.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Falho:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Erro:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation>Ficheiros Python3 ({1});;Ficheiros Python2 ({0});;Ficheiros Todos (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation>Ficheiros Python (*.py);;Ficheiros Todos (*)</translation> </message> @@ -76023,7 +76023,7 @@ <translation type="obsolete">Deve introduzir um ficheiro de suite de testes.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>A preparar Suite de Testes</translation> </message> @@ -76033,7 +76033,7 @@ <translation type="obsolete"><p>Incapaz de executar teste <b>{0}</b>.<br>{1}<br>{2}</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>A executar</translation> </message> @@ -76048,62 +76048,62 @@ <translation type="obsolete">Executados {0} testes em {1:.3f}s</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation>Falho: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation>Erro: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Mostrar Fonte</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation>Saltado:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation>Número de testes saltados</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation>Falhos esperados:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation>Número de testes com falhos esperados </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation>Sucessos Inesperados:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation>Número de testes com êxito imprevistos</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation> Saltado: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation> Falhos esperados</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation> Sucessos Inesperados</translation> </message> @@ -76123,7 +76123,7 @@ <translation><b>Reexecução Falhada</b><p>Este botão reexecuta todos os testes falhados da suite de testes selecionada.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation>%v/%m Testes</translation> </message> @@ -76138,7 +76138,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> @@ -76200,22 +76200,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished">Resultados</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76223,7 +76223,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76238,17 +76238,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76256,22 +76256,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76280,6 +76280,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_ru.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_ru.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6290,7 +6290,7 @@ <translation><p>Попытка соединения с недопустимого компьютора <b>{0}</b>. Разрешить соединение?</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6299,14 +6299,14 @@ </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation>Получен запрос на соединение для пассивной отладки </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation>Соединение для пассивной отладки закрыто @@ -6323,12 +6323,12 @@ <translation><p>Интерфейс отладчика <b>{0}</b> уже зарегистрирован. Запрос проигнорирован.</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation>Запуск отладчика</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation><p>Отладчик типа <b>{0}</b> не поддерживается или не настроен.</p></translation> </message> @@ -6336,7 +6336,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Выполнить сценарий</translation> </message> @@ -6357,7 +6357,7 @@ <p>Установка аргументов командной строки и запуск сценария вне отладчика. Если файл имеет несохранённые изменения, он может быть сохранен первым.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Выполнить проект</translation> </message> @@ -6462,7 +6462,7 @@ <p>Задание аргументов и запуск проекта на профилирование. Если файлы проекта не были сохранены, изменения можно предварительно сохранить.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Отладка сценария</translation> </message> @@ -6483,7 +6483,7 @@ <p>Установка аргументов командной строки и задание в качестве текущей строки первый исполняемый оператор Python текущего окна редактора. Если файл имеет несохранённые изменения, он может быть сохранен первым.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Отладка проекта</translation> </message> @@ -6814,103 +6814,103 @@ <translation>Отладка</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>Отлаживаемая программа содержит неопределенную синтаксическую ошибку.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation><p>Файл <b>{0}</b> содержит синтактическую ошибку <b>{1}</b> в строке <b>{2}</b>, позиция <b>{3}</b>.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>Выброшено исключение, которое не было обработано программой. Более точная информация в окне консоли.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation><p>Отлаживаемая программа выдала исключение <b>{0}</b><br>"<b>{1}</b>"<br>Файл: <b>{2}</b>, Строка: <b>{3}</b></p><p>Прервать выполнение в этом месте?</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation><p>Отлаживаемая программа выдала исключение<br><b>{0}</b><br>"<b>{1}</b>"</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>Отлаживаемая программа была неожиданно прервана.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>Ошибка в условиях точки останова</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation><p>Условие точки останова <b>{0}, {1}</b> содержит синтаксическую ошибку.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Ошибка в выражении для отслеживания</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation><p>Выражение для отслеживания <b>{0}</b> содержит синтаксическую ошибку.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation><p>Выражение для отслеживания '<b>{0}</b>' уже существует.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> - <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> - <translation><p>Выражение для отслеживания '<b>{0}</b>' для переменной <b>{1}</b> уже существует.</p></translation> - </message> - <message> <location filename="../Debugger/DebugUI.py" line="1403"/> + <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> + <translation><p>Выражение для отслеживания '<b>{0}</b>' для переменной <b>{1}</b> уже существует.</p></translation> + </message> + <message> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>Выражение для отслеживания уже существует</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>Покрытие проекта</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>Покрытие сценария</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>Для текущего проекта не определён главный сценарий. Отмена</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Профиль проекта</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Профиль сценария</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>Для текущего проекта не определён главный сценарий. Отладка невозможна.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation>Программа завершилась</translation> </message> @@ -6930,46 +6930,46 @@ <translation><b>Остановка</b><p>Остановка выполнения программы в отладчике.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation><p>Программа генерирует сигнал "{0}".<br/>Файл: <b>{1}</b>, Строка: <b>{2}</b></p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation><p>Сообщение: {0}</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation><p>Программа завершилась с кодом выхода {0}.</p>{1}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation><p><b>{0}</b> завершился с кодом выхода {1}.</p>{2}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation>Сообщение: {0}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation>Программа завершилась с кодом выхода {0}. {1}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation>"{0}" завершился с кодом выхода {1}. {2}</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> @@ -6978,7 +6978,7 @@ </translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7487,32 +7487,32 @@ <translation><p>Невозможно запустить бэкэнд отладчика</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation>Родительский процесс</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation>Порожденный процесс</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation>Разветвление процесса</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation>Выберите fork-ветвь для отслеживания.</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation>Протокол ошибок отладки</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation><p>Невозможно декодировать ответ, полученный от бэкэнда отладчика. Сообщите об этой проблеме, отправив полученные данные на электронную почту eric bugs.</p><p>Error: {0}</p><p>Data: <br/>{1}</p></translation> </message> @@ -76322,7 +76322,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>Юниттест</translation> </message> @@ -76390,67 +76390,67 @@ <translation>&Удалять данные покрытия</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>Прогресс:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Выполнено:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Количество запущенных тестов</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Сбои:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Количество сбоев теста</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Ошибки:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Количество ошибок теста</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Осталось:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Количество выполняемых тестов</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Выполненые тесты:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Сбои и ошибки:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Список сбоев и ошибок</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Выполненые тесты:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Сбои и ошибки:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Список сбоев и ошибок</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -76460,7 +76460,7 @@ отобразит соответствующий стек вызовов.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>Отсутствие действий</translation> </message> @@ -76495,22 +76495,22 @@ <translation><b>Остановить</b><p>Остановить выполняющийся юниттест.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Сбой: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Ошибка: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation>Файлы Python3 ({1});;Файлы Python2 ({0});;Все файлы (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation>Файлы Python (*.py);;Все файлы (*)</translation> </message> @@ -76520,7 +76520,7 @@ <translation type="obsolete">Необходимо ввести файл с набором тестов.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>Подготовка набора тестов</translation> </message> @@ -76530,7 +76530,7 @@ <translation type="obsolete"><p>Невозможно запустить тест <b>{0}</b>.<br>{1}<br>{2}</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>Выполнение</translation> </message> @@ -76545,62 +76545,62 @@ <translation type="obsolete">{0} Тестов пройдено за {1:.3f} секунд</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation>Сбой: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation>Ошибка: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Показ исходников</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation>Пропущено:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation>Количество пропущенных тестов</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation>Ожидаемые сбои:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation>Количество тестов с ожидаемыми сбоями</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation>Неожиданные успехи:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation>Количество тестов с неожиданным успехом</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation> Пропущен: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation> Ожидаемый сбой</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation> Неожидаемый успех</translation> </message> @@ -76620,7 +76620,7 @@ <translation><b>Повторить неудачные</b><p>Перезапустить все неудачные тесты выбранного набора тестов.</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation>%v из %m тестов</translation> </message> @@ -76635,7 +76635,7 @@ <translation>Параметры запуска</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation>Выполнение</translation> </message> @@ -76699,7 +76699,7 @@ <translation>&Виртуальное окружение:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation>Результаты</translation> </message> @@ -76709,17 +76709,17 @@ <translation type="obsolete">Необходимо задать файл с набором тестов или разрешить автообнаружение.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation>Unittest с автообнаружением</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation>Необходимо задать начальную директорию для автообнаружения.</translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation> <numerusform>Выполнен %n тест за {0:.3f} сек</numerusform> @@ -76728,7 +76728,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76743,17 +76743,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76762,22 +76762,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76786,6 +76786,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_tr.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_tr.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6271,7 +6271,7 @@ <translation><p><b>{0}</b>kaçak bir barındırıcıdan (host) bağlantı denemesi. Bu bağlantıyı kabul ediyor musunuz?</p></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6280,13 +6280,13 @@ </translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> @@ -6302,12 +6302,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished">Hata Ayıklayıcıyı Başlat</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6315,7 +6315,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>Betiği Çalıştır</translation> </message> @@ -6335,7 +6335,7 @@ <translation><b>Betiği Çalıştır</b><p> KOmut satırı argumanlarını ayarla ve hata ayıklayıcının dışında çalıştır. Eğer dosyada kaydedilmemiş değişiklikler varsa önce kaydedilmelidir.</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>Projeyi Çalıştır</translation> </message> @@ -6435,7 +6435,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>Betik Hata Ayıklama</translation> </message> @@ -6455,7 +6455,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>Proje Hata Ayıklama</translation> </message> @@ -6775,102 +6775,102 @@ <translation>Hata Ayıklama</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>Uygulama belirtilmemiş sözdizimi hatalarını belirlemeye başladı.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>Hata ayıklanmaya başlanan program beklenmeyen bir şekilde sonlandı.</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>Gözetleme İfade hatası</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> - <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../Debugger/DebugUI.py" line="1403"/> + <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>Hali hazırda gözetleme ifadesi var</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>Proje Kapsamı</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>Betik Kapsamı</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>Bugeçerli projede tanımlanan ana betik değil. Durduruluyor</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>Proje Kesiti</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>Betik Kesiti</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation type="unfinished"></translation> </message> @@ -6890,51 +6890,51 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7437,32 +7437,32 @@ <translation type="unfinished"><p>Hata ayıklayıcıbaşlatılamadı.</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation type="unfinished">Ana İşlem</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation type="unfinished">Alt işlem</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished">İstemci çatallaşması</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished">Takip eden çatallaşmadaki branşı seç.</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -75745,7 +75745,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>Birimtest</translation> </message> @@ -75809,74 +75809,74 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>İşlem:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>Çalıştır:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>Çalışan testlerin sayısı</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>Başarısızlıklar:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>Test başarısızlıklarının sayısı</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>Hatalar:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>Test hatalarının sayısı</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>Geride kalan:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>Koşturulacak test sayısı</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>Başarılan test:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>Başarısızlık ve Hatalar:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>Başarısızlık ve Hata listesi</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>Başarılan test:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>Başarısızlık ve Hatalar:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>Başarısızlık ve Hata listesi</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>Idle</translation> </message> @@ -75911,22 +75911,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^Başarısızlık: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^Hata: </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation>Python3 Dosyaları ({1});;Python2 Dosyaları ({0});; Tüm Dosyalar (*)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation>Python Dosyaları (*.py);;Tüm Dosyalar (*)</translation> </message> @@ -75936,72 +75936,72 @@ <translation type="obsolete">Testyönteminin dosyasını girmelisiniz.</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>Çalışıyor</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation>Başarısızlık:{0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation>Hata: {0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>Kaynağı Göster</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation type="unfinished"></translation> </message> @@ -76021,7 +76021,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation type="unfinished"></translation> </message> @@ -76036,7 +76036,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> @@ -76098,22 +76098,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76121,7 +76121,7 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76136,17 +76136,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> @@ -76154,22 +76154,22 @@ </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76178,6 +76178,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>
--- a/i18n/eric6_zh_CN.ts Tue Mar 26 19:39:42 2019 +0100 +++ b/i18n/eric6_zh_CN.ts Wed Mar 27 20:09:37 2019 +0100 @@ -6265,7 +6265,7 @@ <translation>连接非法主机</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1577"/> + <location filename="../Debugger/DebugServer.py" line="1587"/> <source> Not connected </source> @@ -6279,13 +6279,13 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1783"/> + <location filename="../Debugger/DebugServer.py" line="1800"/> <source>Passive debug connection received </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1797"/> + <location filename="../Debugger/DebugServer.py" line="1814"/> <source>Passive debug connection closed </source> <translation type="unfinished"></translation> @@ -6301,12 +6301,12 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source>Start Debugger</source> <translation type="unfinished">启动调试器</translation> </message> <message> - <location filename="../Debugger/DebugServer.py" line="1401"/> + <location filename="../Debugger/DebugServer.py" line="1403"/> <source><p>The debugger type <b>{0}</b> is not supported or not configured.</p></source> <translation type="unfinished"></translation> </message> @@ -6314,7 +6314,7 @@ <context> <name>DebugUI</name> <message> - <location filename="../Debugger/DebugUI.py" line="1820"/> + <location filename="../Debugger/DebugUI.py" line="1826"/> <source>Run Script</source> <translation>运行脚本</translation> </message> @@ -6334,7 +6334,7 @@ <translation><b>运行脚本</b><p>设置命令行参数,并在调试器之外运行脚本。如果文件未对更改进行保存,则可能会先行保存。</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>Run Project</source> <translation>运行项目</translation> </message> @@ -6434,7 +6434,7 @@ <translation><b>剖析项目</b><p>设置命令行参数,并剖析当前项目。如果当前项目的文件未保存则会先行保存。</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1955"/> + <location filename="../Debugger/DebugUI.py" line="1961"/> <source>Debug Script</source> <translation>调试脚本</translation> </message> @@ -6454,7 +6454,7 @@ <translation><b>调试脚本</b><p>设置命令行参数,并将当前行设为当前编辑窗口首先执行的 Python 声明。如果文件未保存则会先行保存。</p></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>Debug Project</source> <translation>调试项目</translation> </message> @@ -6762,62 +6762,62 @@ <translation>调试</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1093"/> + <location filename="../Debugger/DebugUI.py" line="1099"/> <source>The program being debugged contains an unspecified syntax error.</source> <translation>被调试的程序包含一个未指定的语法错误。</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1130"/> + <location filename="../Debugger/DebugUI.py" line="1136"/> <source>An unhandled exception occured. See the shell window for details.</source> <translation>产生了一个未处理的异常。详细信息参见命令行窗口。</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1256"/> + <location filename="../Debugger/DebugUI.py" line="1262"/> <source>The program being debugged has terminated unexpectedly.</source> <translation>被调试的程序意外终止。</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source>Breakpoint Condition Error</source> <translation>断点条件错误</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source>Watch Expression Error</source> <translation>监视表达式出错</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1403"/> + <location filename="../Debugger/DebugUI.py" line="1409"/> <source>Watch expression already exists</source> <translation>监视表达式已存在</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1569"/> + <location filename="../Debugger/DebugUI.py" line="1575"/> <source>Coverage of Project</source> <translation>项目覆盖率</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1556"/> + <location filename="../Debugger/DebugUI.py" line="1562"/> <source>Coverage of Script</source> <translation>脚本覆盖率</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1835"/> + <location filename="../Debugger/DebugUI.py" line="1841"/> <source>There is no main script defined for the current project. Aborting</source> <translation>当前项目未定义主脚本。终止</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1701"/> + <location filename="../Debugger/DebugUI.py" line="1707"/> <source>Profile of Project</source> <translation>项目轮廓</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1688"/> + <location filename="../Debugger/DebugUI.py" line="1694"/> <source>Profile of Script</source> <translation>脚本轮廓</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1971"/> + <location filename="../Debugger/DebugUI.py" line="1977"/> <source>There is no main script defined for the current project. No debugging possible.</source> <translation>当前项目未定义主脚本。不能进行调试。</translation> </message> @@ -6834,42 +6834,42 @@ <translation>Shift+F12</translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1112"/> + <location filename="../Debugger/DebugUI.py" line="1118"/> <source><p>The file <b>{0}</b> contains the syntax error <b>{1}</b> at line <b>{2}</b>, character <b>{3}</b>.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1177"/> + <location filename="../Debugger/DebugUI.py" line="1183"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"<br>File: <b>{2}</b>, Line: <b>{3}</b></p><p>Break here?</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1192"/> + <location filename="../Debugger/DebugUI.py" line="1198"/> <source><p>The debugged program raised the exception <b>{0}</b><br>"<b>{1}</b>"</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1327"/> + <location filename="../Debugger/DebugUI.py" line="1333"/> <source><p>The condition of the breakpoint <b>{0}, {1}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1363"/> + <location filename="../Debugger/DebugUI.py" line="1369"/> <source><p>The watch expression <b>{0}</b> contains a syntax error.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1393"/> + <location filename="../Debugger/DebugUI.py" line="1399"/> <source><p>A watch expression '<b>{0}</b>' already exists.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1397"/> + <location filename="../Debugger/DebugUI.py" line="1403"/> <source><p>A watch expression '<b>{0}</b>' for the variable <b>{1}</b> already exists.</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1062"/> + <location filename="../Debugger/DebugUI.py" line="1068"/> <source>Program terminated</source> <translation type="unfinished"></translation> </message> @@ -6889,51 +6889,51 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1242"/> + <location filename="../Debugger/DebugUI.py" line="1248"/> <source><p>The program generate the signal "{0}".<br/>File: <b>{1}</b>, Line: <b>{2}</b></p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1031"/> + <location filename="../Debugger/DebugUI.py" line="1035"/> <source><p>Message: {0}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1036"/> + <location filename="../Debugger/DebugUI.py" line="1040"/> <source><p>The program has terminated with an exit status of {0}.</p>{1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1041"/> + <location filename="../Debugger/DebugUI.py" line="1045"/> <source><p><b>{0}</b> has terminated with an exit status of {1}.</p>{2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1049"/> + <location filename="../Debugger/DebugUI.py" line="1053"/> <source>Message: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1055"/> + <location filename="../Debugger/DebugUI.py" line="1059"/> <source>The program has terminated with an exit status of {0}. {1}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1058"/> + <location filename="../Debugger/DebugUI.py" line="1063"/> <source>"{0}" has terminated with an exit status of {1}. {2}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1067"/> + <location filename="../Debugger/DebugUI.py" line="1073"/> <source>The program has terminated with an exit status of {0}. {1} </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebugUI.py" line="1071"/> + <location filename="../Debugger/DebugUI.py" line="1077"/> <source>"{0}" has terminated with an exit status of {1}. {2} </source> @@ -7438,32 +7438,32 @@ <translation type="unfinished"><p>调试器后端无法启动。</p></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1018"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1032"/> <source>Parent Process</source> <translation>父进程</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1019"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1033"/> <source>Child process</source> <translation>子进程</translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Client forking</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1020"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1034"/> <source>Select the fork branch to follow.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source>Debug Protocol Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../Debugger/DebuggerInterfacePython.py" line="1066"/> + <location filename="../Debugger/DebuggerInterfacePython.py" line="1080"/> <source><p>The response received from the debugger backend could not be decoded. Please report this issue with the received data to the eric bugs email address.</p><p>Error: {0}</p><p>Data:<br/>{1}</p></source> <translation type="unfinished"></translation> </message> @@ -75923,7 +75923,7 @@ <context> <name>UnittestDialog</name> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source>Unittest</source> <translation>单元测试</translation> </message> @@ -75990,67 +75990,67 @@ <translation>擦除覆盖率数据(&E)</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="253"/> + <location filename="../PyUnit/UnittestDialog.ui" line="273"/> <source>Progress:</source> <translation>进程:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="293"/> + <location filename="../PyUnit/UnittestDialog.ui" line="313"/> <source>Run:</source> <translation>运行:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="300"/> + <location filename="../PyUnit/UnittestDialog.ui" line="320"/> <source>Number of tests run</source> <translation>测试运行的数目</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="344"/> + <location filename="../PyUnit/UnittestDialog.ui" line="364"/> <source>Failures:</source> <translation>失败:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="351"/> + <location filename="../PyUnit/UnittestDialog.ui" line="371"/> <source>Number of test failures</source> <translation>测试失败的数目</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="361"/> + <location filename="../PyUnit/UnittestDialog.ui" line="381"/> <source>Errors:</source> <translation>错误:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="368"/> + <location filename="../PyUnit/UnittestDialog.ui" line="388"/> <source>Number of test errors</source> <translation>测试错误的数目</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="310"/> + <location filename="../PyUnit/UnittestDialog.ui" line="330"/> <source>Remaining:</source> <translation>剩余:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="317"/> + <location filename="../PyUnit/UnittestDialog.ui" line="337"/> <source>Number of tests to be run</source> <translation>将要运行的测试的数目</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="450"/> - <source>Tests performed:</source> - <translation>测试已完成:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="460"/> - <source>Failures and errors:</source> - <translation>失败和错误:</translation> - </message> - <message> - <location filename="../PyUnit/UnittestDialog.ui" line="467"/> - <source>Failures and Errors list</source> - <translation>失败和错误列表</translation> - </message> - <message> <location filename="../PyUnit/UnittestDialog.ui" line="470"/> + <source>Tests performed:</source> + <translation>测试已完成:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="480"/> + <source>Failures and errors:</source> + <translation>失败和错误:</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="487"/> + <source>Failures and Errors list</source> + <translation>失败和错误列表</translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="490"/> <source><b>Failures and Errors list</b> <p>This list shows all failed and errored tests. Double clicking on an entry will show the respective traceback.</p></source> @@ -76059,7 +76059,7 @@ 双击条目将显示相应的追踪。</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="501"/> + <location filename="../PyUnit/UnittestDialog.ui" line="521"/> <source>Idle</source> <translation>空闲</translation> </message> @@ -76094,12 +76094,12 @@ <translation><b>中止测试</b><p>该按钮中止一个正在运行的单元测试。</p></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="152"/> + <location filename="../PyUnit/UnittestDialog.py" line="155"/> <source>^Failure: </source> <translation>^失败:</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="153"/> + <location filename="../PyUnit/UnittestDialog.py" line="156"/> <source>^Error: </source> <translation>^错误:</translation> </message> @@ -76109,82 +76109,82 @@ <translation type="obsolete">必须输入测试套件文件。</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="634"/> + <location filename="../PyUnit/UnittestDialog.py" line="637"/> <source>Preparing Testsuite</source> <translation>准备测试套件</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="920"/> + <location filename="../PyUnit/UnittestDialog.py" line="925"/> <source>Running</source> <translation>正在运行</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1081"/> + <location filename="../PyUnit/UnittestDialog.py" line="1089"/> <source>Show Source</source> <translation>显示源代码</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="292"/> + <location filename="../PyUnit/UnittestDialog.py" line="295"/> <source>Python Files (*.py);;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="288"/> + <location filename="../PyUnit/UnittestDialog.py" line="291"/> <source>Python3 Files ({1});;Python2 Files ({0});;All Files (*)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="961"/> + <location filename="../PyUnit/UnittestDialog.py" line="969"/> <source>Failure: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="976"/> + <location filename="../PyUnit/UnittestDialog.py" line="984"/> <source>Error: {0}</source> <translation type="unfinished">错误:{0}</translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="378"/> + <location filename="../PyUnit/UnittestDialog.ui" line="398"/> <source>Skipped:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="385"/> + <location filename="../PyUnit/UnittestDialog.ui" line="405"/> <source>Number of tests skipped</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="395"/> + <location filename="../PyUnit/UnittestDialog.ui" line="415"/> <source>Expected Failures:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="402"/> + <location filename="../PyUnit/UnittestDialog.ui" line="422"/> <source>Number of tests with expected failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="412"/> + <location filename="../PyUnit/UnittestDialog.ui" line="432"/> <source>Unexpected Successes:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="419"/> + <location filename="../PyUnit/UnittestDialog.ui" line="439"/> <source>Number of tests with unexpected success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="991"/> + <location filename="../PyUnit/UnittestDialog.py" line="999"/> <source> Skipped: {0}</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1006"/> + <location filename="../PyUnit/UnittestDialog.py" line="1014"/> <source> Expected Failure</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="1020"/> + <location filename="../PyUnit/UnittestDialog.py" line="1028"/> <source> Unexpected Success</source> <translation type="unfinished"></translation> </message> @@ -76204,7 +76204,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="284"/> + <location filename="../PyUnit/UnittestDialog.ui" line="304"/> <source>%v/%m Tests</source> <translation type="unfinished"></translation> </message> @@ -76219,7 +76219,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="245"/> + <location filename="../PyUnit/UnittestDialog.ui" line="265"/> <source>Progress</source> <translation type="unfinished"></translation> </message> @@ -76281,29 +76281,29 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="239"/> + <location filename="../PyUnit/UnittestDialog.ui" line="259"/> <source>Results</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="638"/> + <location filename="../PyUnit/UnittestDialog.py" line="641"/> <source>Unittest with auto-discovery</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="728"/> + <location filename="../PyUnit/UnittestDialog.py" line="731"/> <source>You must enter a start directory for auto-discovery.</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="944"/> + <location filename="../PyUnit/UnittestDialog.py" line="949"/> <source>Ran %n test(s) in {0:.3f}s</source> <translation type="unfinished"> <numerusform></numerusform> </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.ui" line="211"/> + <location filename="../PyUnit/UnittestDialog.ui" line="231"/> <source>Discovery Results</source> <translation type="unfinished"></translation> </message> @@ -76318,39 +76318,39 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="370"/> + <location filename="../PyUnit/UnittestDialog.py" line="373"/> <source>Discovering Tests</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="437"/> + <location filename="../PyUnit/UnittestDialog.py" line="440"/> <source><p>Unable to discover tests.</p><p>{0}</p></source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../PyUnit/UnittestDialog.py" line="587"/> + <location filename="../PyUnit/UnittestDialog.py" line="590"/> <source>Discovered %n Test(s)</source> <translation type="unfinished"> <numerusform></numerusform> </translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="592"/> + <location filename="../PyUnit/UnittestDialog.py" line="595"/> <source><p>Unable to discover tests.</p><p>{0}<br/>{1}</p></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="625"/> + <location filename="../PyUnit/UnittestDialog.py" line="628"/> <source>You must select auto-discovery or enter a test suite file or a dotted test name.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="647"/> + <location filename="../PyUnit/UnittestDialog.py" line="650"/> <source><Unnamed Test></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../PyUnit/UnittestDialog.py" line="839"/> + <location filename="../PyUnit/UnittestDialog.py" line="843"/> <source><p>Unable to run test <b>{0}</b>.</p><p>{1}<br/>{2}</p></source> <translation type="unfinished"></translation> </message> @@ -76359,6 +76359,26 @@ <source><b>Discover</b><p>This button starts a discovery of available tests.</p></source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="200"/> + <source>Select to stop the test run on the first error or failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="203"/> + <source>Stop on First Error or Failure</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="210"/> + <source>Select to run the unittest with debugger support enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../PyUnit/UnittestDialog.ui" line="213"/> + <source>Run with Debugger</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>UrlBar</name>