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

Jér*_*nge 15 javascript java compile-time println system.out

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

System.out.println()在Javascript中有没有相当于Java的东西?

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

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>
Run Code Online (Sandbox Code Playgroud)

更新II

我试过了console.log("..."),但我明白了:

js: "src/main/webapp/html/js/concat/tests_all.js", line 147:
uncaught JavaScript runtime exception: ReferenceError: "console" is not defined
Run Code Online (Sandbox Code Playgroud)

我正在测试的代码是一组函数(比如在库中).我正在使用QUnit.

Chr*_*ner 23

基本上,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()评估表达式并将其打印出来的方法.查看此文档.

您可能会对这些链接感兴趣.

QUnit和自动化测试

JavaScript单元使用QUnit进行测试

  • @Rocket我会同意,希望大多数不再存在,但它绝对是一个问题.此外,那些糟糕的浏览器是您必须进行最多调试的浏览器! (3认同)
  • 如果浏览器没有`console`那么它就是一个糟糕的浏览器(用于调试). (2认同)
  • 我知道IE不会有`console`对象,除非你打开调试工具,然后它会添加它.但那是因为IE是愚蠢的. (2认同)