lamoda/gonkey

Сделать путь до фейлящегося теста кликабельным

fetinin opened this issue · 9 comments

На мой взгляд нам стоит немного поменять то как выводится путь до файла с упавшим тестом.

Сейчас для упавшего теста выводится относительный путь. Это хорошо и сильно облегчает поиск теста.
image

Но можно доработать вывод сделав путь абсолютным и дописав схему file://. В этом случае многие терминалы будут понимать что это путь к файлу и делать его кликабельным. В идеале через двоеточие указывать строку теста, тогда по клику можно будет сразу попадать ещё и на нужную строку.
image

@leorush @keyclaim @luza @vitkarpenko хотелось бы услышать ваше мнение. Что думаете, видите ли какие-то проблемы? Может есть способ как-то иначе это решить? А то визуально новый вывод менее красивый получается.

luza commented

Я так понимаю, основная мотивация, это чтобы клик работал во встроенной консоли в IDE? Круто, если бы по переменной окружения можно было бы понять, что мы запущены в IDE, и только в этом случае печатать полные пути. Но в целом, я здесь скептичен, все же компактность и читаемость сильно страдают.

Да, основная мотивация - иметь возможность быстро по клику перейти к нужному тесту.

Сегодня ещё немного потестировал и обнаружил что префикс file:// лишний. Достаточно просто писать полный путь до файла. Терминал запущенный из Goland, Vscode, iTerm парсят путь и при наведении предлагают открыть файл.

По переменным окружения можно определить откуда был запущен терминал.
Goland - TERMINAL_EMULATOR=JetBrains-JediTerm
Iterm - TERM_PROGRAM=iTerm.app
Vscode - TERM_PROGRAM=vscode
Можно завязаться на него и не отображать полный путь до файла там где он не нужен, но терминалов в мире много и боюсь такой функционал будет трудно поддерживать. Да и то что вывод тестов зависит от терминала в котором он был запущен может быть неожиданным и неочевидным.

Думаю самый простой и безболезненный вариант: добавить полный путь до файла ещё одной строкой.
Как на счёт такого варианта?
image

luza commented

Да, пойдет, по-моему.

luza commented

А ты уверен, что терминал никак не детектит относительные пути?

Меня устраивает. Конечно, относительные было бы еще лучше, но и так будет хорошо.

Ещё было бы неплохо добавить переменную в энв, для отключения этого. Вдруг в CI не нужен вывод пути?

Поисследовал ещё проблему и поменял свою точку зрения что это всё же скорее проблема терминала, а не gonkey. VSCode относительные пути детектит, а у IntelliJ IDEA висит давний баг на то чтобы относительные пути детектить. Как workaround можно использовать плагин Awesome Console.

Так что полный путь похоже нет нужды прописывать. Единственное, было бы всё равно классно сделать так чтобы в пути через двоеточие указывался номер строки зафейлившегося теста, чтобы можно было сразу к нему перескакивать при открытии.

На указание двоеточия заведу отдельную issue