Ich benutze Delphi XE und ich habe eine Projektgruppe, die die Hauptanwendung und eine DUnit-Testanwendung enthält. Von Zeit zu Zeit gehe ich in die DUnit-Testanwendung, um einige Tests hinzuzufügen und eine bestehende zu starten.
Einige Testcodes generieren Ausnahmen, die von der Anwendung gehandhabt werden, aber vom Delphi-Debugger mehrfach angezeigt werden, da ich gewohnt bin, die Testanwendung mit der Verknüpfung F9 auszuführen, wie bei der Standardanwendung : Das ist in diesem Fall nicht sehr praktisch.
Ich kenne die SHIFT + STRG + F9 Verknüpfung, um ohne Debuggen zu laufen, und das ist großartig, wenn ich mich erinnere um es zu benutzen, aber ich finde oft, dass ich F9 anklicke, dann grunze, dann die Testanwendung schließe und dann SHIFT + CTRL + F9 . Was für ein Zeitverlust.
Also meine Frage: Gibt es einen besseren Weg? Kann ich einige Einstellungen definieren oder einen Experten verwenden, um diese bestimmte Anwendung standardmäßig ohne Debugging auszuführen? Sicherlich bin ich nicht der Einzige, der dieses Problem hat.
Vielen Dank im Voraus.
Nein (zumindest nicht bis D2009). Ausführen ohne Debugging ist eine IDE-Sache. Ein ciler Flag würde nicht helfen, da es die IDE ist, die die exe hakt, nicht umgekehrt. Der einzige Ort, wo Sie eine solche Option haben könnten, wäre in den Projekteinstellungen. Aber die IDE könnte leicht verwirrend werden, da die normale Unterscheidung zwischen Run und Run ohne Debugging aufgehoben würde. Sie benötigen dann eine dritte Option, die ich rate, "Ausführen", "Ausführen mit Debugging" und "Ausführen ohne Debugging", wobei das einfache "Ausführen" die Projektoptionen übernehmen würde.
Fügen Sie der Symbolleiste das Symbol zum Ausführen ohne Debuggen hinzu. Ihr Problem ist, dass Sie den Hotkey vergessen und auf das Symbol klicken. Entfernen Sie also das andere Symbol, oder verschieben Sie sie wie folgt:
Je größer Ihre Anwendung wächst, desto langsamer wird der Start des Debuggers. Ich laufe jetzt ungefähr 99% der Zeit ohne Debugging, da die Startzeit meiner App von 2 Sekunden auf 2 Minuten geht, da sie viele Laufzeitpakete verwendet und jeder BPL-Ladevorgang im Debugger mit einem großen Treffer kommt meine Produktivität. Lange, langsame, schmerzhafte Erfahrung hat mich dazu gebracht, mich selbst zu fragen: "Muss ich wirklich debuggen?". Wenn nicht, klicke ich auf das schöne grüne Symbol (in XE), das das Ausrufezeichen in älteren Versionen ersetzt. (Eine intelligente UI Verbesserung denke ich.). In früheren Versionen von Delphi bedeutete die grüne Schaltfläche "Ausführen mit Debugging".
Ich verstehe Ihr Problem, aber ich persönlich halte es nicht für sinnvoll, das Standardverhalten von F9 zu ändern.
Sie haben einige Testfälle, von denen Ausnahmen erwartet werden. (ANMERKUNG: Ich denke tatsächlich an Tests, die nach bestimmten Ausnahmen suchen, wenn schlechte Eingaben gegeben werden. Nicht Ausnahmen werden von der Anwendung gehandhabt.) Und ich stimme zu, dass es keinen Sinn hat, darauf hingewiesen zu werden die meisten Umstände. Eine Ausnahme in anderen Testfällen wäre jedoch ein Problem, auf das ich so schnell wie möglich aufmerksam gemacht werden sollte.
Also ist mein bevorzugter Laufmodus normalerweise, über Ausnahmen informiert zu werden. Und expliziten Code in bestimmten Testfällen, der die Ausnahmebenachrichtigung nur im Kontext der Tests explizit deaktiviert, die Produktionscode-Ausnahmen auslösen.
Ich habe eine Technik, die dafür sehr gut funktioniert.
In einem Test, der Ausnahmen auslösen soll, schreibe ich den folgenden Code:
%Vor%Ich denke, Sie wollen den Quellcode für diese beiden Methoden? :)
%Vor%Wo ist der Rest, den du fragst? Es gibt keine - das ist es!
... aber es gibt ein paar Anweisungen, denen Sie folgen müssen:
Dies steht in der Nähe von jpfollenius ' Idee für Optionen der Compiler-Richtlinie. Es spricht auch David Bedenken Sie, wie Sie diese Ausnahmen erneut aktivieren. Sie müssen lediglich die Haltepunkte deaktivieren, damit alle Ausnahmen erneut gemeldet werden.
Zusätzliche Gedanken:
Sie erwähnen:
Einige Testcodes generieren Ausnahmen, die von der Anwendung behandelt werden.
Wenn Ihre Anwendung alle diese Ausnahmen behandelt, dann:
Im Grunde erscheint es mir irritierend, dass Ihre Formulierung "eine Reihe von Ausnahmen, die Sie nicht allzu sehr beunruhigen, da sie" behandelt "werden. Viele Leute machen den Fehler zu denken, dass sie mit einer Ausnahme umgehen , wenn sie wirklich nur sie schlucken und die Grundprobleme verstecken.