Возможно ли получить доступ к имени текущего исполняемого теста из теста ScalaTest? (А как бы я это сделать?)Доступное имя теста ScalaTest из внутреннего теста?
фона:
Я проверяю, что мой доступ к данным объекта в конце концов бросает OverQuotaException
, если пользователь, например, создает слишком много страниц. Эти тесты занимают довольно много времени. Чтобы чувствовать себя счастливее, я бы хотел напечатать прогресс в stdout - и, поскольку тестов довольно много, я бы хотел включить тестовое имя в вывод, поэтому я знаю, какой тест в настоящее время выполняется.
(я не нашел, казалось бы, соответствующую функцию здесь: http://www.artima.com/docs-scalatest-2.0.M5/#org.scalatest.FreeSpec)
Пример:
"QuotaCharger can" - {
"charge and decline quota consumers" - {
"charge a per site IP number (guest user)" in {
// ... Here, a guest user post very many comments until it's over quota.
// This takes a little while, and there are many similar tests.
// ---> Here <--- I'd like to access the string:
// "charge a per site IP number (guest user)",
// is that possible somehow?
}
Я думаю, что я предпочитаю подход 'def currentTestName: String' на самом деле, что вы можете получить доступ из любого места, не передавая никаких параметров (и изменяя сигнатуры функций только для целей отладки). С моей точки зрения, тестовое имя не является частью теста - это только отладочная информация. Но когда он появляется как параметр для теста ('td =>'), то он, кажется, является частью теста. – KajMagnus
Что делать, если ваш тест принимает «реальный» параметр прибора? Тогда либо вам нужно будет принять 2 параметра для каждого теста? '" имя теста "в {case (td, realTestData) => ...}'. Или, возможно, не удастся также пройти тест «realTestData»? Поскольку один и только параметр, переданный в тест, будет тем, который предоставил имя теста (для целей отладки). – KajMagnus
Ну, имейте в виду, что currentTestName работает только в том случае, если тесты выполняются последовательно, что будет истинным, если вы не смешаете ParallelTestExecution. В этом случае вы можете просто установить var в withFixture в обычном FreeSpec. Если тесты выполняются последовательно, подход к шляпе также будет работать и звучит менее навязчиво, если это только для отладки временно. Я предполагал, что это будет навсегда. –