blob: e1c90c3d05992f333bf34c51ac25109e0fecf63b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
/* Test.java */
import java.lang.reflect.*;
public class Test
{
public static Object createTestObject(String name)
{
//Klassennamen zusammenbauen
int pos = name.lastIndexOf('.');
if (pos == -1) {
name = "Test" + name;
} else {
name = name.substring(0, pos + 1) + "Test" +
name.substring(pos + 1);
}
//Klasse laden
Object ret = null;
try {
Class testclass = Class.forName(name);
//Testobjekt instanzieren
System.out.println("==============================");
System.out.println("Instanzieren von: " + name);
System.out.println("--");
ret = testclass.newInstance();
} catch (ClassNotFoundException e) {
System.err.println("Kann Klasse nicht laden: " + name);
} catch (InstantiationException e) {
System.err.println("Fehler beim Instanzieren: " + name);
} catch (IllegalAccessException e) {
System.err.println("Unerlaubter Zugriff auf: " + name);
}
return ret;
}
public static void runTests(Object tester)
{
Class clazz = tester.getClass();
Method[] methods = clazz.getMethods();
int cnt = 0;
for (int i = 0; i < methods.length; ++i) {
//Methodenname muss mit "test" anfangen
String name = methods[i].getName();
if (!name.startsWith("test")) {
continue;
}
//Methode muss parameterlos sein
Class[] paras = methods[i].getParameterTypes();
if (paras.length > 0) {
continue;
}
//Methode darf nicht static sein
int modifiers = methods[i].getModifiers();
if (Modifier.isStatic(modifiers)) {
continue;
}
//Nun kann die Methode aufgerufen werden
++cnt;
System.out.println("==============================");
System.out.println("Aufgerufen wird: " + name);
System.out.println("--");
try {
methods[i].invoke(tester, new Object[0]);
} catch (Exception e) {
System.err.println(e.toString());
}
}
if (cnt <= 0) {
System.out.println("Keine Testmethoden gefunden");
}
}
public static void main(String[] args)
{
if (args.length <= 0) {
System.err.println("Aufruf: java Test <KlassenName>");
System.exit(1);
}
Object tester = createTestObject(args[0]);
runTests(tester);
}
}
|