Что эквивалентно Java System.out.println () в Javascript? - PullRequest
14 голосов
/ 04 января 2012

Я пишу несколько тестов для кода Javascript, и мне нужно вывести некоторые сообщения во время процесса компиляции при возникновении ошибок.

Есть ли какой-нибудь эквивалент Java System.out.println() в Javascript?

P.S. : мне также нужно вывести операторы отладки при реализации тестов.

UPDATE

Я использую плагин maven для файла, содержащего все объединенные тесты:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                <phase>test</phase>
                <goals>
                    <goal>java</goal>
                </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>org.mozilla.javascript.tools.shell.Main</mainClass>
                <arguments>
                    <argument>-opt</argument>
                    <argument>-1</argument>
                    <argument>${basedir}/src/main/webapp/html/js/test/test.js</argument>
                </arguments>
            </configuration>
        </plugin>

ОБНОВЛЕНИЕ II

Я пытался console.log("..."), но получаю:

js: "src/main/webapp/html/js/concat/tests_all.js", line 147:
uncaught JavaScript runtime exception: ReferenceError: "console" is not defined

Код, который я тестирую, представляет собой набор функций (как в библиотеке). Я использую QUnit.

Ответы [ 8 ]

22 голосов
/ 05 января 2012

По существу console.log("Put a message here."), если в браузере есть поддерживающая консоль.

Другой типичный метод отладки - использование предупреждений, alert("Put a message here.")

RE: Обновление II

Кажется, это имеет смысл, вы пытаетесь автоматизировать тесты QUnit, из того, что я прочитал на QUnit, это блок / библиотека для модульного тестирования в браузере.Ожидается, что QUnit будет запущен в браузере и, следовательно, ожидает, что браузер распознает все функции JavaScript, которые вы вызываете.

В зависимости от конфигурации Maven вы используете Rhino для запуска Javascript в командной строке / терминале.Это не сработает для тестирования специфики браузера, вам, вероятно, придется поискать Selenium для этого.Если вас не интересует тестирование JavaScript в браузере, а тестирование JavaScript только на уровне командной строки (по причине, с которой я не был бы знаком), похоже, что Rhino распознает метод print() для оценкивыражения и распечатывать их.Оформить заказ эта документация .

Эти ссылки могут быть вам интересны.

Быстрое и автоматическое тестирование

Юнит-тесты JavaScript с QUnit

3 голосов
/ 23 сентября 2013

Я использую Chrome и print () буквально печатает текст на бумаге.Вот что у меня работает:

document.write("My message");
3 голосов
/ 05 января 2012

Я нашел решение:

print("My message here");
2 голосов
/ 05 января 2012

console.log().

Chrome, Safari и IE 8+ поставляются со встроенными консолями (как часть более широкого набора инструментов разработки). Если вы используете Firefox, getfirebug.com .

0 голосов
/ 09 апреля 2019

В Java System.out.println() печатает что-то на консоли.В javascript это можно сделать с помощью console.log().

. Чтобы просмотреть консоль браузера, нажмите клавишу F12, которая открывает инструмент разработчика, а затем перейдите на вкладку console.

0 голосов
/ 06 января 2012

Я тоже собираюсь задать тот же вопрос. Но из того, что я узнал на codeacademy.com ниже, кода достаточно для отображения вывода или текста?

print("hello world")  
0 голосов
/ 05 января 2012

Вы всегда можете просто добавить предупреждение () в любом месте функции. Особенно полезно знать, была ли вызвана функция, завершена ли функция или произошел ли сбой функции.

alert('start of function x');
alert('end of function y');
alert('about to call function a');
alert('returned from function b');

Вы поняли.

0 голосов
/ 05 января 2012

Нет, по крайней мере, одного, если только вы не используете какой-либо инструмент "разработчика" в вашем браузере, например Firebug в Firefox или инструменты разработчика в Safari. Тогда вы обычно можете использовать console.log.

Если я что-то делаю, скажем, на устройстве iOS, я мог бы добавить <div id="debug" /> и затем войти в него.

...