我有这样的测试:
(ns opengltuts.core-test
(:use clojure.test
opengltuts.util)
(:import (org.lwjgl.opengl
GL11 GL12 GL13 GL14 GL15 GL20 GL21 GL30 GL31 GL32 GL33)))
(def gl-classes [GL11 GL12 GL13 GL14 GL15 GL20 GL21 GL30 GL31 GL32 GL33])
(deftest find-method-test
(testing "find-method finds method in single class"
(is (= (find-method "toString" Object)
["public java.lang.String java.lang.Object.toString()"])))
(testing "find-method finds all methods in list of classes"
(is (= (apply find-method "glShaderSource" gl-classes)
(comment "Omitted a 'p' to trigger failure")
["ublic static void org.lwjgl.opengl.GL20.glShaderSource(int,java.nio.ByteBuffer)"
"public static void org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence)"
"public static void org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence[])"]))))现在我确定这个命令失败了,我得到的输出如下
lein test opengltuts.core-test
FAIL in (find-method-test) (core_test.clj:14)
find-method finds all methods in list of classes
expected: (= (apply find-method "glShaderSource" gl-classes) ["ublic static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.nio.ByteBuffer)" "public static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence)" "public static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence[])"])
actual: (not (= ("public static void org.lwjgl.opengl.GL20.glShaderSource(int,java.nio.ByteBuffer)" "public static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence)" "public static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence[])") ["ublic static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.nio.ByteBuffer)" "public static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence)" "public static void
org.lwjgl.opengl.GL20.glShaderSource(int,java.lang.CharSequence[])"]))
Ran 1 tests containing 2 assertions.
1 failures, 0 errors.
Tests failed.我发现这是相当难读的。而不是这样,我更喜欢这样的输出:
<all that info stuff, like the name of the test>
Expected: [something]
Got: [something-else]事实上,我很难弄清楚我在和什么做比较。
发布于 2012-10-09 02:21:46
有几个流行的Clojure测试框架,clojure.test (你正在使用的)很受欢迎,尽管Midje的输出看起来更接近你想要的。下面是一个测试失败的例子:
FAIL at (t_core.clj:13)
Expected: "I am a test file fact"
Actual: 3https://github.com/marick/Midje/wiki/Migrating-from-clojure.test
发布于 2012-10-09 09:25:59
clojure.test的报告可以通过重新绑定clojure.test/report函数来配置。这在docs for the namespace中有描述。你的函数将被一系列事件映射调用,每个事件映射代表测试运行的某个阶段。在clojure.test源here中有一个生成与JUnit兼容的输出的示例。
https://stackoverflow.com/questions/12787193
复制相似问题