onlineide:integration:onlineideexitstatusaccess
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Zugriff auf Exit-Status der Programmausführung von anderen Skripten aus
Wenn ein User ein Programm oder einen Test in der Embedded Online-IDE startet, kann der Status der Programmausführung/Testdurchführung nach Beendigung an andere Javascript-Programme weitergegeben werden.
A. Setzen von 'enableRunExitStatusAccess': true
Um der IDE mitzuteilen, dass die Weitergabe des Exitstatus erwünscht ist, muss das Attribut enableRunExitStatusAccess gesetzt werden:
<div class="java-online" style="width: calc(100% - 10px); height: 500px; margin-left: 5px" data-java-online="{ 'id': 'abcd', 'enableRunExitStatusAccess': true }"> <script type="text/plain" title="Program.java" data-type="java"> for(int i = 0; i < 10; i++){ println(i); } System.exit(0); </script>
B. Registrieren des Exitstatus-Listeners
Bemerkung: Wenn man 'window.online_ide_onReady' eine Funktion zuweist, wird sie ausgeführt, nachdem die Online-IDE fertig initialisiert ist und insbesondere auch 'window.online_ide_access' definiert ist.
window.online_ide_onReady = () => { let ide = window.online_ide_access.getIDE('abcd'); ide.registerOnRunExitListener((exitStatus)=>{console.log(exitStatus);}); }
C. exitStatus-Objekt
Hier der Aufbau des exitStatus-Objekts:
export type ExitStatus = { exitCode: number; // if program exited via System.exit(int code) output: string; // program output generated via print() and println() exception?: IThrowable; testProgress?: TestProgress; }
'testProgress' ist ein Baum mit allen Testergebnissen:
type TestProgress = { overall: number, passed: number, failed: number, classIdentifier: string, methodIdentifier: string, children: TestProgress[] }
Komplettes Beispiel
<div class="java-online" style="width: calc(100% - 10px); height: 500px; margin-left: 5px" data-java-online="{ 'id': 'abcd', 'speed': 'max', 'withFileList': true, 'hideEditor': false, 'hideStartPanel': false, 'libraries': [''], 'spritesheetURL': '/assets/test-spritesheets/Campfire.zip', 'settings': { 'compiler.shadowedSymbolErrorLevel': 'error' }, 'withClassDiagram': true, 'enableRunExitStatusAccess': true }"> <script type="text/plain" title="Program.java" data-type="java"> for(int i = 0; i < 10; i++){ println(i); } System.exit(0); </script> <script type="text/plain" title="Test.java" data-type="java" data-online-ide="{'readOnly': true}"> @Test class MyFirstTestClass { @Test void testSquareRoot() { double squareRootOfFour = Math.sqrt(4); assertEquals(2.0, squareRootOfFour, "There seems to be something wrong with Math.sqrt!"); } @Test void testDivision() { double n = 5 / 2 * 3; println(n); assertEquals(7.5, n, "5/2 * 3 doesn't yield 7.5 -> mysterious..."); } } </script> </div>
onlineide/integration/onlineideexitstatusaccess.1788436647.txt.gz · Zuletzt geändert: von martin
