Skip to content

Commit ea3b376

Browse files
author
Dmytro Chyzhykov
committed
Changes according to code review
1 parent be543f0 commit ea3b376

File tree

3 files changed

+25
-23
lines changed

3 files changed

+25
-23
lines changed

pom.xml

+7
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<rhino.version>1.7R4</rhino.version>
3434
<ioke.version>P-0.4.0-p11</ioke.version>
3535
<jsoup.version>1.7.2</jsoup.version>
36+
<testng.version>6.8.5</testng.version>
3637
<junit.version>4.11</junit.version>
3738
<jython.version>2.5.3</jython.version>
3839
<mockito.version>1.9.5</mockito.version>
@@ -277,6 +278,11 @@
277278
<artifactId>junit</artifactId>
278279
<version>${junit.version}</version>
279280
</dependency>
281+
<dependency>
282+
<groupId>org.testng</groupId>
283+
<artifactId>testng</artifactId>
284+
<version>${testng.version}</version>
285+
</dependency>
280286
<dependency>
281287
<groupId>org.python</groupId>
282288
<artifactId>jython-standalone</artifactId>
@@ -380,6 +386,7 @@
380386
<module>openejb</module>
381387
<module>scala</module>
382388
<module>scala/scala_previous</module>
389+
<module>testng</module>
383390
</modules>
384391

385392
<profiles>

testng/src/main/java/cucumber/api/testng/AbstractTestNGCucumberTests.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cucumber.api.testng;
22

3+
import cucumber.runtime.CucumberException;
34
import cucumber.runtime.Runtime;
45
import cucumber.runtime.RuntimeOptions;
56
import cucumber.runtime.io.MultiLoader;
@@ -11,10 +12,10 @@
1112
import org.testng.annotations.Test;
1213

1314
public abstract class AbstractTestNGCucumberTests implements IHookable {
14-
private TestNgReporter reporter;
15-
private Runtime runtime;
16-
private ClassLoader classLoader;
17-
private ResourceLoader resourceLoader;
15+
private final TestNgReporter reporter;
16+
private final Runtime runtime;
17+
private final ClassLoader classLoader;
18+
private final ResourceLoader resourceLoader;
1819

1920
public AbstractTestNGCucumberTests() {
2021
classLoader = getClass().getClassLoader();
@@ -24,7 +25,7 @@ public AbstractTestNGCucumberTests() {
2425
RuntimeOptions runtimeOptions = runtimeOptionsFactory.create();
2526

2627
reporter = new TestNgReporter(System.out);
27-
runtimeOptions.formatters.add(reporter);
28+
runtimeOptions.getFormatters().add(reporter);
2829
runtime = new Runtime(resourceLoader, classLoader, runtimeOptions);
2930
}
3031

@@ -33,7 +34,7 @@ public void run_cukes() {
3334
runtime.run();
3435

3536
if (!runtime.getErrors().isEmpty()) {
36-
throw new RuntimeException(runtime.getErrors().get(0));
37+
throw new CucumberException(runtime.getErrors().get(0));
3738
}
3839
}
3940

testng/src/main/java/cucumber/api/testng/TestNgReporter.java

+11-17
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,28 @@
1515

1616
import java.util.LinkedList;
1717
import java.util.List;
18-
import java.util.concurrent.atomic.AtomicInteger;
1918

2019
import static org.testng.Reporter.getCurrentTestResult;
2120
import static org.testng.Reporter.log;
2221

2322
public class TestNgReporter implements Formatter, Reporter {
24-
2523
private final NiceAppendable out;
26-
27-
private AtomicInteger failureCount = new AtomicInteger(0);
28-
private AtomicInteger skipCount = new AtomicInteger(0);
29-
private AtomicInteger passCount = new AtomicInteger(0);
30-
31-
private LinkedList<Step> steps = new LinkedList<Step>();
24+
private final LinkedList<Step> steps = new LinkedList<Step>();
3225

3326
public TestNgReporter(Appendable appendable) {
3427
out = new NiceAppendable(appendable);
3528
}
3629

3730
@Override
3831
public void uri(String uri) {
39-
logDiv("Feature File: " + uri, "featureFile");
32+
// TODO: find an appropriate keyword
33+
String keyword = "Feature File";
34+
logDiv(keyword, uri, "featureFile");
4035
}
4136

4237
@Override
4338
public void feature(Feature feature) {
44-
logDiv("Feature: " + feature.getName(), "feature");
39+
logDiv(feature.getKeyword(), feature.getName(), "feature");
4540
}
4641

4742
@Override
@@ -50,12 +45,12 @@ public void background(Background background) {
5045

5146
@Override
5247
public void scenario(Scenario scenario) {
53-
logDiv("Scenario: " + scenario.getName(), "scenario");
48+
logDiv(scenario.getKeyword(), scenario.getName(), "scenario");
5449
}
5550

5651
@Override
5752
public void scenarioOutline(ScenarioOutline scenarioOutline) {
58-
logDiv("Scenario Outline: " + scenarioOutline.getName(), "scenarioOutline");
53+
logDiv(scenarioOutline.getKeyword(), scenarioOutline.getName(), "scenarioOutline");
5954
}
6055

6156
@Override
@@ -97,19 +92,14 @@ public void result(Result result) {
9792
ITestResult tr = getCurrentTestResult();
9893
tr.setThrowable(result.getError());
9994
tr.setStatus(ITestResult.FAILURE);
100-
failureCount.incrementAndGet();
10195
} else if (Result.SKIPPED.equals(result)) {
10296
ITestResult tr = getCurrentTestResult();
10397
tr.setThrowable(result.getError());
10498
tr.setStatus(ITestResult.SKIP);
105-
skipCount.incrementAndGet();
10699
} else if (Result.UNDEFINED.equals(result)) {
107100
ITestResult tr = getCurrentTestResult();
108101
tr.setThrowable(result.getError());
109102
tr.setStatus(ITestResult.FAILURE);
110-
failureCount.incrementAndGet();
111-
} else {
112-
passCount.incrementAndGet();
113103
}
114104
}
115105

@@ -165,4 +155,8 @@ private void logDiv(String message, String cssClassName) {
165155
log(output);
166156
}
167157

158+
private void logDiv(String message, String message2, String cssClassName) {
159+
logDiv(message + ": " + message2, cssClassName);
160+
}
161+
168162
}

0 commit comments

Comments
 (0)