|
TestNG Version 5.6 |
|
JUnit Version 4.4 |
| 1 |
Extensive annotation support |
1 |
Supports Annotations but not that much rich as TestNG |
| 2 |
Flexible test configuration in an external XML file. |
2 |
Configuration is less and no XML file configuration at all. |
| 3 |
External configuration gives more flexibility. |
3 |
Less configuration makes it more easy and really fast to create 🙂 |
| 4 |
Support for data-driven testing (with @DataProvider). |
4 |
We have to integrate with EasyMock for Mock object testing |
| 5 |
Support for parameters using @Parameters |
5 |
No such type of annotations |
| 6 |
Allows distribution of tests on slave machines. |
6 |
NA |
| 7 |
Supported by a variety of tools and plug-ins (Eclipse, IDEA, Maven, etc…). |
7 |
Cant defeat JUnit in this matter. It has a lot of supporting tools and plugins. |
| 8 |
Embeds BeanShell (scripting) for further flexibility. |
8 |
JUnit dont have this feature at all. |
| 9 |
Default JDK functions for runtime and logging (no dependencies). |
9 |
I dont aware of logging support in JUnit. |
| 10 |
Dependent methods for application server testing. |
10 |
NA |
| 11 |
Creates a small HTML report at eash time of testing. Which will display the passed/failed tests and errors. It gives the XML output for testing also. |
11 |
JUnit also creates the test report in XML form. But it will not create an HTML form with passed/failed testnames at each test run. But we can create a very useful JavaDoc Style report for entire JUnit testing |
| 12 |
We dont need a specific name for setup and tearDown. We can make any method/ any number of methods that works on start up |
12 |
Same in Junit also. |
| 13 |
Here we can create Groups, Suites, etc and it also gives more annotations like
@After/BeforeSuite.
@After/BeforeGroup.
@After/BeforeClass.
@After/BeforeMethod etc |
13 |
@After/Before works in methods and @After/BeforeClass will work with classes. But no groups or suites. |
| 14 |
No annotation like @Ignore. But we can ignore through XML congiurations. |
14 |
@Ignore annotation is there for ignoring a method. |
| 15 |
Dependancy of previous methods can be managed easily |
15 |
Methods dependancy handling between each test methods is not possible easily. |
| 16 |
Option to run failed tests only/ last test only in the IDE |
16 |
We have to select and run each methods which are failed |
| 17 |
No AssertThat method support |
17 |
It gives a method AssertThat that is very much flexible for giving a Business type result message for the tests. |
| 18 |
Using ‘ExpectedExceptions in @Test Annotation’ we can expect some exceptions in the test methods and thus the method will be success. |
18 |
We can use (expected = Exception.class) in the @Test annotation |