Compare commits
4 commits
47e23dc23c
...
8632993fed
Author | SHA1 | Date | |
---|---|---|---|
8632993fed | |||
75b33ba6d6 | |||
c8fe28cda9 | |||
e26934ef67 |
11 changed files with 91 additions and 59 deletions
4
.idea/copyright/Apache_License.xml
generated
4
.idea/copyright/Apache_License.xml
generated
|
@ -1,6 +1,6 @@
|
|||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="notice" value="Copyright &#36;today.year the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." />
|
||||
<option name="notice" value="Copyright 2023-Copyright &#36;today.yearamp;#36;today.year the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." />
|
||||
<option name="myName" value="Apache License" />
|
||||
</copyright>
|
||||
</component>
|
||||
</component>
|
||||
|
|
12
checkcliargs.sh
Executable file
12
checkcliargs.sh
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
MAIN="org.testng.TestNG"
|
||||
TMPNEW=/tmp/checkcliargs-new
|
||||
TMPOLD=/tmp/checkcliargs-old
|
||||
|
||||
java -cp "lib/test/*" $MAIN >$TMPNEW
|
||||
java -cp "examples/lib/test/*" $MAIN >$TMPOLD
|
||||
|
||||
diff $TMPOLD $TMPNEW
|
||||
|
||||
rm -rf $TMPNEW $TMPOLD
|
|
@ -3,18 +3,16 @@ package com.example;
|
|||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
class ExampleTest {
|
||||
public static void main(String[] args) {
|
||||
new ExampleTest().verifyHello();
|
||||
}
|
||||
class ExamplesTest {
|
||||
private final ExamplesLib example = new ExamplesLib();
|
||||
|
||||
@Test
|
||||
void testFail() {
|
||||
Assert.fail("failed");
|
||||
void foo() {
|
||||
Assert.assertNotEquals(example.getMessage(), "foo");
|
||||
}
|
||||
|
||||
@Test
|
||||
void verifyHello() {
|
||||
Assert.assertTrue(true);
|
||||
Assert.assertEquals(example.getMessage(), "Hello World!");
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2023 the original author or authors.
|
||||
* Copyright 2023-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -50,7 +50,7 @@ public class TestNgOperationBuild extends Project {
|
|||
.include(dependency("org.testng", "testng", version(7, 9, 0)))
|
||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1)))
|
||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1)))
|
||||
.include(dependency("org.assertj", "assertj-core", version(3, 24, 2)));
|
||||
.include(dependency("org.assertj", "assertj-core", version(3, 25, 2)));
|
||||
|
||||
javadocOperation()
|
||||
.javadocOptions()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2023 the original author or authors.
|
||||
* Copyright 2023-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -561,6 +561,19 @@ public class TestNgOperation extends AbstractProcessOperation<TestNgOperation> {
|
|||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should TestNG use a global Shared ThreadPool (At suite level) for running data providers.
|
||||
*
|
||||
* @param shareThreadPoolForDataProviders {@code true} or {@code false}
|
||||
* @return this operation instance
|
||||
*/
|
||||
public TestNgOperation shareThreadPoolForDataProviders(boolean shareThreadPoolForDataProviders) {
|
||||
if (shareThreadPoolForDataProviders) {
|
||||
options.put("-shareThreadPoolForDataProviders", String.valueOf(shareThreadPoolForDataProviders));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The directories where your javadoc annotated test sources are. This option is only necessary
|
||||
* if you are using javadoc type annotations. (e.g. {@code "src/test"} or
|
||||
|
@ -845,6 +858,19 @@ public class TestNgOperation extends AbstractProcessOperation<TestNgOperation> {
|
|||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should TestNG use a global Shared ThreadPool (At suite level) for running regular and data driven tests.
|
||||
*
|
||||
* @param useGlobalThreadPool {@code true} or {@code false}
|
||||
* @return this operation instance
|
||||
*/
|
||||
public TestNgOperation useGlobalThreadPool(boolean useGlobalThreadPool) {
|
||||
if (useGlobalThreadPool) {
|
||||
options.put("-useGlobalThreadPool", String.valueOf(useGlobalThreadPool));
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Level of verbosity.
|
||||
*
|
||||
|
@ -921,4 +947,4 @@ public class TestNgOperation extends AbstractProcessOperation<TestNgOperation> {
|
|||
*/
|
||||
CONTINUE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2023 the original author or authors.
|
||||
* Copyright 2023-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -16,22 +16,15 @@
|
|||
|
||||
package rife.bld.extension;
|
||||
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Implements the TestNgSimpleTest class.
|
||||
* Implements the TestNgExample class.
|
||||
*
|
||||
* @author <a href="https://erik.thauvin.net/">Erik C. Thauvin</a>
|
||||
* @since 1.0
|
||||
*/
|
||||
class TestNgSimple2Test {
|
||||
public static void main(String[] args) {
|
||||
new TestNgSimple2Test().verifyHello();
|
||||
}
|
||||
|
||||
@Test
|
||||
void verifyHello() {
|
||||
Assert.assertTrue(true);
|
||||
@SuppressWarnings("PMD.TestClassWithoutTestCases")
|
||||
class TestNgExample {
|
||||
public String getMessage() {
|
||||
return "Hello World!";
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2023 the original author or authors.
|
||||
* Copyright 2023-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -20,23 +20,21 @@ import org.testng.Assert;
|
|||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Implements the TestNgSimpleTest class.
|
||||
* Implements the TestNgExampleTest class.
|
||||
*
|
||||
* @author <a href="https://erik.thauvin.net/">Erik C. Thauvin</a>
|
||||
* @since 1.0
|
||||
*/
|
||||
class TestNgSimpleTest {
|
||||
public static void main(String[] args) {
|
||||
new TestNgSimpleTest().verifyHello();
|
||||
}
|
||||
class TestNgExampleTest {
|
||||
private final TestNgExample example = new TestNgExample();
|
||||
|
||||
@Test
|
||||
void testFail() {
|
||||
Assert.fail("failed");
|
||||
void foo() {
|
||||
Assert.assertEquals(example.getMessage(), "foo");
|
||||
}
|
||||
|
||||
@Test
|
||||
void verifyHello() {
|
||||
Assert.assertTrue(true);
|
||||
Assert.assertEquals(example.getMessage(), "Hello World!");
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2023 the original author or authors.
|
||||
* Copyright 2023-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -85,7 +85,7 @@ class TestNgOperationTest {
|
|||
void testExecute() {
|
||||
assertThatThrownBy(() ->
|
||||
new TestNgOperation().fromProject(new Project())
|
||||
.testClass("rife.bld.extension.TestNgSimpleTest")
|
||||
.testClass("rife.bld.extension.TestNgExampleTest")
|
||||
.execute())
|
||||
.as("with testClass").isInstanceOf(ExitStatusException.class);
|
||||
|
||||
|
@ -97,8 +97,8 @@ class TestNgOperationTest {
|
|||
|
||||
assertThatCode(() ->
|
||||
new TestNgOperation().fromProject(new Project())
|
||||
.testClass("rife.bld.extension.TestNgSimpleTest")
|
||||
.methods("rife.bld.extension.TestNgSimpleTest.verifyHello")
|
||||
.testClass("rife.bld.extension.TestNgExampleTest")
|
||||
.methods("rife.bld.extension.TestNgExampleTest.verifyHello")
|
||||
.execute())
|
||||
.as("with methods").doesNotThrowAnyException();
|
||||
|
||||
|
@ -110,14 +110,14 @@ class TestNgOperationTest {
|
|||
|
||||
assertThatCode(() ->
|
||||
new TestNgOperation().fromProject(new Project())
|
||||
.suites("src/test/resources/testng3.xml")
|
||||
.suites("src/test/resources/testng2.xml")
|
||||
.log(2)
|
||||
.execute())
|
||||
.as("suite 3").doesNotThrowAnyException();
|
||||
.as("suite 2 - log ").doesNotThrowAnyException();
|
||||
|
||||
assertThatCode(() ->
|
||||
new TestNgOperation().fromProject(new Project())
|
||||
.suites("src/test/resources/testng3.xml")
|
||||
.suites("src/test/resources/testng2.xml")
|
||||
.testClasspath("lib/test/*", "build/main", "build/test")
|
||||
.log(2)
|
||||
.execute())
|
||||
|
@ -125,7 +125,7 @@ class TestNgOperationTest {
|
|||
|
||||
assertThatCode(() ->
|
||||
new TestNgOperation().fromProject(new Project())
|
||||
.suites("src/test/resources/testng3.xml")
|
||||
.suites("src/test/resources/testng2.xml")
|
||||
.testClasspath(List.of("lib/test/*", "build/main", "build/test"))
|
||||
.log(2)
|
||||
.execute())
|
||||
|
@ -315,6 +315,15 @@ class TestNgOperationTest {
|
|||
assertThat(op.options.get("-testrunfactory")).isEqualTo(FOO);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testShareThreadPoolForDataProviders() {
|
||||
var op = new TestNgOperation().shareThreadPoolForDataProviders(true);
|
||||
assertThat(op.options.get("-shareThreadPoolForDataProviders")).isEqualTo("true");
|
||||
|
||||
op = new TestNgOperation().shareThreadPoolForDataProviders(false);
|
||||
assertThat(op.options.get("-shareThreadPoolForDataProviders")).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSourceDir() {
|
||||
var op = new TestNgOperation().sourceDir(FOO, BAR);
|
||||
|
@ -375,6 +384,15 @@ class TestNgOperationTest {
|
|||
assertThat(op.options.get("-usedefaultlisteners")).isEqualTo("true");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUseGlobalThreadPool() {
|
||||
var op = new TestNgOperation().useGlobalThreadPool(true);
|
||||
assertThat(op.options.get("-useGlobalThreadPool")).isEqualTo("true");
|
||||
|
||||
op = new TestNgOperation().useGlobalThreadPool(false);
|
||||
assertThat(op.options.get("-useGlobalThreadPool")).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void testVerbose() {
|
||||
var op = new TestNgOperation().log(1);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<suite name="test suite 1" verbose="2">
|
||||
<test name="simple test">
|
||||
<classes>
|
||||
<class name="rife.bld.extension.TestNgSimpleTest"/>
|
||||
<class name="rife.bld.extension.TestNgExample"/>
|
||||
</classes>
|
||||
</test>
|
||||
</suite>
|
|
@ -2,9 +2,9 @@
|
|||
<suite name="test suite 2" verbose="1">
|
||||
<test name="exclude fail">
|
||||
<classes>
|
||||
<class name="rife.bld.extension.TestNgSimpleTest">
|
||||
<class name="rife.bld.extension.TestNgExampleTest">
|
||||
<methods>
|
||||
<exclude name="testFail"/>
|
||||
<exclude name="foo"/>
|
||||
</methods>
|
||||
</class>
|
||||
</classes>
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
|
||||
<suite name="test suite 3">
|
||||
<test name="test 2 classes">
|
||||
<classes>
|
||||
<class name="rife.bld.extension.TestNgSimpleTest">
|
||||
<methods>
|
||||
<exclude name="testFail"/>
|
||||
</methods>
|
||||
</class>
|
||||
<class name="rife.bld.extension.TestNgSimple2Test"/>
|
||||
</classes>
|
||||
</test>
|
||||
</suite>
|
Loading…
Add table
Add a link
Reference in a new issue