From afdd948e272409ea7b1102802282ecb1c0f57bd4 Mon Sep 17 00:00:00 2001 From: AChavali Date: Fri, 17 Jan 2020 02:32:01 +0000 Subject: +omnisharp--unit-test-emit-results I have to see the test output from my tests! --- doom.d/modules/config.org | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/doom.d/modules/config.org b/doom.d/modules/config.org index afe952c..e1f5de6 100644 --- a/doom.d/modules/config.org +++ b/doom.d/modules/config.org @@ -222,6 +222,58 @@ Emacs doesn't have the full range of styles that I want, so lemme just do it mys (counsel-etags-forward-line linenum) (omnisharp-unit-test-at-point)))) :caller 'oreodave/csharp/get-unit-tests-in-project))) + (defun omnisharp--unit-test-emit-results (passed results) + "Emits unit test results as returned by the server to the unit test result buffer. +PASSED is t if all of the results have passed. RESULTS is a vector of status data for +each of the unit tests ran." + ; we want to clean output buffer for result if things have passed otherwise + ; compilation & test run output is to be cleared and results shown only for brevity + + (omnisharp--unit-test-message "") + + (seq-doseq (result results) + (-let* (((&alist 'MethodName method-name + 'Outcome outcome + 'ErrorMessage error-message + 'ErrorStackTrace error-stack-trace + 'StandardOutput stdout + 'StanderError stderr) result) + (outcome-is-passed (string-equal "passed" outcome))) + + (omnisharp--unit-test-message + (format "[%s] %s " + (propertize + (upcase outcome) + 'font-lock-face (if outcome-is-passed + '(:foreground "green" :weight bold) + '(:foreground "red" :weight bold))) + (omnisharp--truncate-symbol-name method-name 76))) + + (if error-stack-trace + (omnisharp--unit-test-message error-stack-trace)) + + (unless (= (seq-length stdout) 0) + (omnisharp--unit-test-message "Standard output:") + (seq-doseq (stdout-line stdout) + (omnisharp--unit-test-message stdout-line))) + + (unless (= (seq-length stderr) 0) + (omnisharp--unit-test-message "Standard error:") + (seq-doseq (stderr-line stderr) + (omnisharp--unit-test-message stderr-line))) + )) + + (omnisharp--unit-test-message "") + + (if (eq passed :json-false) + (omnisharp--unit-test-message + (propertize "*** UNIT TEST RUN HAS FAILED ***" + 'font-lock-face '(:foreground "red" :weight bold))) + (omnisharp--unit-test-message + (propertize "*** UNIT TEST RUN HAS SUCCEEDED ***" + 'font-lock-face '(:foreground "green" :weight bold))) + ) + nil) (add-hook! 'csharp-mode-hook '(lambda() -- cgit v1.2.3-13-gbd6f