Well, yeah. The one you're seeing down there does show some extra
command debug info. Only the bottom part of the output is meaningful.
Also, there's a number of ways to customize tests reports and an extra
summary/reports are generated in HTML/XML forms.
Cos
Nigel Daley wrote:
Cos,
Where else does the TestNG output go? Is there a way to have clean
console summary output of pass/fail from each test as it runs (ala
Junit)?
thanks,
Nige
On May 1, 2009, at 11:45 AM, Konstantin Boudnik wrote:
Ok, I have completed the conversion of the unit tests for project
Avro to be executed by TestNG framework. List of tests is built
dynamically and all.
Here's the log of the execution:
--------------- start of log's snippet ---------------
test-java-ng:
[testng] [TestNGAntTask] TESTNG PASSED @/tmp/testng34807 WHICH
CONTAINS:
[testng] [TestNGAntTask] -d
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test-
output
[testng] [TestNGAntTask] -sourcedir
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/src/test/java
[testng] [TestNGAntTask] -testclass
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/TestDataFile.class
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/TestFsData.class
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/TestProtocolGeneric.class
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/TestProtocolReflect.class
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/TestProtocolSpecific.class
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/TestReflect.class
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/TestSchema.class
[testng] [TestNGAntTask] /Users/cos/work/avro/trunk/build/test/
classes/org/apache/avro/io/TestValueReader.class
[testng] [TestNGAntTask] -suitename
[testng] [TestNGAntTask] AvroTestNG
[testng] [TestNGAntTask] -testname
[testng] [TestNGAntTask] Ant test
[testng] [Parser] Running:
[testng] AvroTestNG
[testng]
[testng] 523 [main] INFO org.apache.avro.ipc.SocketServer -
starting on 0.0.0.0/0.0.0.0:0
[testng] 523 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng] 531 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - connection from /
192.168.102.128:51751
[testng] 531 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng] 763 [main] INFO org.apache.avro.ipc.SocketServer -
starting on 0.0.0.0/0.0.0.0:0
[testng] 764 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng] 764 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - connection from /
192.168.102.128:51753
[testng] 764 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng] 883 [main] INFO org.apache.avro.ipc.SocketServer -
starting on 0.0.0.0/0.0.0.0:0
[testng] 883 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng] 883 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - connection from /
192.168.102.128:51755
[testng] 884 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng] 888 [Connection for
java.nio.channels.SocketChannel[connected local=/
192.168.102.128:51754 remote=/192.168.102.128:51755]] INFO
org.apache.avro.TestProtocolGeneric - echo: {name=foo}
[testng] 898 [Connection for
java.nio.channels.SocketChannel[connected local=/
192.168.102.128:51754 remote=/192.168.102.128:51755]] INFO
org.apache.avro.TestProtocolGeneric - echoBytes:
java.nio.HeapByteBuffer[pos=0 lim=13717 cap=13717]
[testng] 909 [Connection for
java.nio.channels.SocketChannel[connected local=/
192.168.102.128:51754 remote=/192.168.102.128:51755]] INFO
org.apache.avro.TestProtocolGeneric - hello: bob
[testng] 1159 [main] INFO org.apache.avro.ipc.SocketServer -
starting on 0.0.0.0/0.0.0.0:0
[testng] 1160 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng] 1162 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - connection from /
192.168.102.128:51757
[testng] 1162 [SocketServer on 0.0.0.0/0.0.0.0:0] INFO
org.apache.avro.ipc.SocketServer - listening on /0.0.0.0
[testng]
[testng] ===============================================
[testng] AvroTestNG
[testng] Total tests run: 42, Failures: 0, Skips: 0
[testng] ===============================================
[testng]
BUILD SUCCESSFUL
--------------- end of log's snippet ---------------
A couple of lessons learned from the exercise:
- JUnitConvertor isn't much help. I've found quite a number of test
methods simply ignored by the application
- a major chunk of conversion have to be done manually, e.g.
sequence of the test method execution is needed to be written before
hand, etc.
- if I knew the product (Avro) and its testing better it would take
much less time, because some of the issues weren't require any
investigation for they become obvious after some initial acquittance
with the code base structure, etc.
I'm creating new JIRA for this improvement and you should see the
patch in a couple of hours.
If anyone has a better idea of how to submit it - I'd appreciate to
hear an opinion from the development community.
Thanks,
Cos
Konstantin Boudnik wrote:
Sharad, Nigel.
I'm trying to finish the conversion of the junit tests into testng
and have accomplished a certain success. A couple of very special
issues I came across:
- a generated interface build/test/src/org/apache/avro/Test.java
was a source of errors when TestNG imports we added into test
files. I had to rename test.js to generated.js and refactor few
tests to work with the new name. Generally, using names like Test
for helper classes might be a source of troubles.
- it seems that some of the tests have to be executed in a
certain order. I probably should be able to derive the order of the
execution by re-engineering build.xml file itself. However,
before I'll jump on it I'd like to know if someone here has any
information about required java test execution sequence.
So, looks like the conversion process goes Ok, but it isn't
seamless and require a significant amount of manual work.
Thanks for any information,
Cos
Sharad Agarwal wrote:
Sounds good. I think you can create a Jira and provide a patch.
- create an XML listing of tests to be executed (simple
selection of
**/*.class doesn't work in this case)
I don't know much about Test NG, but can we workaround this issue?
Maintaining an XML file seems to be an overhead.
- Sharad