При написании макросов VBA я часто использовал "F8" чтобы отлаживать макрос по строкам. Есть ли аналогичная функция в Google Apps Script?
Выполнение кода в Google Apps Script (эквивалент VBA-GAS)
Ответ 1
Похоже, но не то же самое.
Google Apps Script разработан в выделенной среде IDE 1 называемой Script Редактор, которая обеспечивает поддержку одношагового выполнения и точек останова, среди прочего,
Для быстрого введения в отладку с использованием среды IDE см. это видео. Раздел Troubleshooting онлайн-документации содержит краткий обзор основ.
Отладка функций с параметрами
В среде IDE вы можете выбрать любую функцию в вашем Script для выполнения, а затем выбрать значки "run" или "Debug" для запуска. К сожалению, нет способа передать параметры функции таким образом, так что вот несколько способов справиться с этим.
-
Установите значения по умолчанию. Существуют многочисленные способы определения значений по умолчанию в javascript, вот изображение отладчика, работающего над функцией, используя простейший из них. Функция
toText()
from этот ответ принимает число как параметр, поэтому для этого примера мы вынуждаем значение по умолчанию21
. На рисунке показано, что отладчик приостановлен на линии 40; если мы продолжим переходить через функцию, мы ожидаем, что получим результатs == 'Twenty-one'
. -
Напишите тестовую функцию. Это лучший подход, чем установка значений по умолчанию, поскольку он позволяет вам писать несколько тестовых примеров, и это позволяет избежать загрязнения вашей целевой функции кодом отладки. Например, целевая функция
flipFlopAndFly()
и ее тестовая функцияtest_flipFlopAndFly()
были представлены в этом ответе. Функция тестирования обращается к электронной таблице, чтобы предоставить соответствующие данные для тестирования цели, поэтому мы можем легко модифицировать данные для разных тестов. Также обратите внимание, что эта функция включает проверку ошибок, поэтому было бы нецелесообразно тестировать, вызывая значения по умолчанию.
Существует множество вариантов этих основных шаблонов, поэтому не стесняйтесь адаптировать их к своей ситуации. Это поможет вашей способности отладки думать, когда вы пишете о том, как вы будете проходить через свой код:
- Каждый важный объект и значение хранятся в
var
, поэтому вы можете его увидеть? - Является ли результат вашей функции (возвращаемое значение) в
var
?
Пользовательские функции
При разработке или отладке пользовательских функций, которые будут вызываться из электронной таблицы, помните, что вы не можете "прыгать" в среду IDE. Если вам нужно пройти через script, вам нужно будет полностью работать в среде IDE, чтобы наблюдать за выполнением вашего кода. Вы можете использовать описанные выше методы для отладки пользовательских функций.