Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API: support call stacks in TestMessages #214488

Open
connor4312 opened this issue Jun 6, 2024 · 3 comments
Open

API: support call stacks in TestMessages #214488

connor4312 opened this issue Jun 6, 2024 · 3 comments
Assignees
Milestone

Comments

@connor4312
Copy link
Member

connor4312 commented Jun 6, 2024

Currently, messages that are shown when tests fail can only be shown at a single Location. Often (connor4312/nodejs-testing#37, #214287 (comment), among others) folks want to see the full call stack of the test failure.

I propose some API to add this information:

declare module 'vscode' {
	export class TestMessage2 extends TestMessage {
		/**
		 * The stack trace associated with the message or failure.
		 */
		stackTrace?: TestMessageStackFrame[];
	}

	export class TestMessageStackFrame {
		/**
		 * The location of this stack frame. This should be provided as a URI if the
		 * location of the call frame can be accessed by the editor.
		 */
		file?: Uri;

		/**
		 * Position of the stack frame within the file.
		 */
		position?: Position;

		/**
		 * The name of the stack frame, typically a method or function name.
		 */
		label: string;

		/**
		 * @param label The name of the stack frame
		 * @param file The file URI of the stack frame
		 * @param position The position of the stack frame within the file
		 */
		constructor(label: string, file?: Uri, position?: Position);
	}
}
@timheuer
Copy link
Member

@connor4312 does this track that not only the stack but stack + any stdout would show in same UX? /cc @peterwald

@connor4312
Copy link
Member Author

Yes, output is already trackable and associable to a test case via the run.appendOutput API

@peterwald
Copy link
Member

We are using appendOutput() to record all stdout written by tests. In addition, the test.fail() is used to record the failure message and stack for each test failure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants