Javascript中的Java的System.out.println()相当于什么?

我正在为Javascript代码编写一些测试,当遇到错误时,我需要在编译过程中转储一些消息。

有没有与Javascript中的Java等效的Java?System.out.println()

PS:在实现测试时,我还需要转储调试语句。

更新

我正在一个包含所有合并测试的文件上使用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>

更新二

我试过了,但我得到:console.log("...")

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

我正在测试的代码是一组函数(就像在库中一样)。我正在使用QUnit。


答案 1

基本上,如果浏览器有一个支持的控制台。console.log("Put a message here.")

另一种典型的调试方法是使用警报,alert("Put a message here.")

回复:更新 II

这似乎是有道理的,您正在尝试自动化QUnit测试,从我在QUnit上读到的内容来看,这是一个浏览器内的单元测试套件/库。QUnit 期望在浏览器中运行,因此期望浏览器能够识别您正在调用的所有 JavaScript 函数。

根据您的 Maven 配置,您似乎正在使用 Rhino 在命令行/终端上执行 Javascript。这不适用于测试浏览器细节,您可能需要为此研究Selenium。如果你不关心在浏览器中测试你的JavaScript,而只是在命令行级别测试JavaScript(出于我不熟悉的原因),那么Rhino似乎识别出一种用于计算表达式并将其打印出来的print()方法。请查看此文档

您可能对这些链接感兴趣。

QUnit 和自动化测试

JavaScript Unit Tests with QUnit


答案 2

我找到了一个解决方案:

print("My message here");