我可以在JUnit测试中打印信息消息吗?

时间:2016-06-29 09:49:06

标签: android junit

我正在运行JUnit测试作为我的Android应用测试的一部分。在这种情况下,它只是测试我们依赖的API的响应,可能经常更改(以便验证以后的测试)

当这些测试通过Android studio的输出窗口时,没有显示任何消息。我们反而喜欢用一条消息说明它正在测试哪个端点(例如“Tests / oranges // segments”),以便消息始终显示为传递和失败测试的第一条消息。

我尝试了android日志Log.println(Log.ASSERT, "...", "...")但是没有在android studio输出中显示。

有办法做到这一点吗?我参考的输出窗口是下面显示的那个

enter image description here

(当测试被标记为忽​​略时,您可以提供要显示的消息。我只是喜欢其他测试的相同行为)

2 个答案:

答案 0 :(得分:9)

旧式In [240]: df['col3'] = df['col1'] | df['col2'] df Out[240]: col1 col2 col3 0 True False True 1 False True True 2 False False False 样式Java将起作用。

答案 1 :(得分:4)

JUnit测试不是在Android设备(或模拟器)上执行,而是在PC环境中的Java虚拟机上执行。你有两个解决方案:

  • 只需使用一些Logger(如log4j,JDK记录器等)或只使用System.out。
  • 使用Roboletric及其功能定义影子类以重新定义Log类。

我建议你第二种方式。 Roboletric已经有一个日志的影子类。将输出重定向到控制台

 @Before
 public void setUp() throws Exception {
      ShadowLog.stream = System.out;
      //you other setup here
 }

一些参考文献:

https://guides.codepath.com/android/Unit-Testing-with-Robolectric https://github.com/robolectric/robolectric-samples http://www.vogella.com/tutorials/Robolectric/article.html

希望它有所帮助。