我正在为Javascript代码编写一些测试,我需要在遇到错误时在编译过程中转储一些消息。
Javascript中是否有与Java System.out.println()
相同的内容?
P.S。:我还需要在实施测试时转储调试语句。
更新
我在包含所有合并测试的文件上使用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。
答案 0 :(得分:21)
如果浏览器有支持控制台,则基本上为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()
用于评估表达式并将其打印出来的方法。结帐this documentation。
您可能会对这些链接感兴趣。
答案 1 :(得分:3)
我找到了解决方案:
print("My message here");
答案 2 :(得分:3)
我正在使用Chrome和 print()从字面上将文字打印在纸上。这对我有用:
document.write("My message");
答案 3 :(得分:2)
Chrome,Safari和IE 8+都带有内置控制台(作为更多开发工具的一部分)。如果您使用的是Firefox getfirebug.com。
答案 4 :(得分:0)
除非您在浏览器中使用某种“开发者”工具,否则至少没有一个,例如Firefox中的Firebug或Safari中的Developer工具。然后你通常可以使用console.log
。
如果我在iOS设备上做某事,我可能会添加<div id="debug" />
,然后登录到它。
答案 5 :(得分:0)
您始终可以在函数中的任何位置添加alert()提示。特别适用于了解函数是否被调用,函数是否已完成或函数失败的情况。
alert('start of function x');
alert('end of function y');
alert('about to call function a');
alert('returned from function b');
你明白了。
答案 6 :(得分:0)
我也要提出同样的问题。但是从我从codeacademy.com下面学到的代码就足以显示输出或文本了吗?
print("hello world")
答案 7 :(得分:0)
在Java System.out.println()
中输出一些内容进行控制台。在javascript中,可以使用console.log()
来实现。
您需要通过按F12
键(打开开发人员工具,然后切换到console
标签)来查看浏览器控制台。