[
https://issues.jboss.org/browse/JBIDE-25282?page=com.atlassian.jira.plugi...
]
Andre Dietisheim updated JBIDE-25282:
-------------------------------------
Description:
* integration tests should reuse OpenShift resources, not start from scratch in each test.
Creating OpenShift applications for instance can easily take up to several minutes.
Multiply this by ex. 100 tests and we're easily at a runtime of several hours for the
whole suite.
The Requirements that we have in reddeer OpenShift were create with re-using resources in
mind.
** Ex. annotating a test class with
{code}
@RequiredProject(
name = DatastoreOS3.TEST_PROJECT)
{code}
makes sure that there's a project "test-project" that exists in the
OpenShift server that's being used. If it exists, the annotation would do nothing. It
creates it if it doesnt exist.
The required project (either pre-existing the test or created upfront if it didnt) is
injected into the test via
{code}
@InjectRequirement
protected static OpenShiftProjectRequirement requiredProject;
{code}
** Ex. annotating a test class with
{code}
@RequiredService(
project = DatastoreOS3.TEST_PROJECT,
service = OpenShiftResources.NODEJS_SERVICE,
template = OpenShiftResources.NODEJS_TEMPLATE)
{code}
makes sure that the test has a service called "nodejs-example" available. If it
exists it wont do anything. If it doesn't, it'll create it using the
NODEJS_TEMPLATE provided in the annotation.
* All tests should be able to run indivdiually. When developing integration tests for a
new feature, running the whole suite gets a big impediment. We should therefore allow all
tests to be run individually
was:
* integration tests should reuse OpenShift resources, not start from scratch in each test.
Creating OpenShift applications for instance can easily take up to several minutes.
Multiply this by ex. 100 tests and we're easily at a runtime of several hours for the
whole suite.
The Requirements that we have in reddeer OpenShift were create with re-using resources in
mind.
** Ex. annotating a test class with
{code}
@RequiredProject(
name = DatastoreOS3.TEST_PROJECT)
{code}
makes sure that there's a project "test-project" that exists in the
OpenShift server that's being used. If it exists, the annotation would do nothing. It
creates it if it doesnt exist.
** Ex. annotating a test class with
{code}
@RequiredService(
project = DatastoreOS3.TEST_PROJECT,
service = OpenShiftResources.NODEJS_SERVICE,
template = OpenShiftResources.NODEJS_TEMPLATE)
{code}
makes sure that the test has a service called "nodejs-example" available. If it
exists it wont do anything. If it doesn't, it'll create it using the
NODEJS_TEMPLATE provided in the annotation.
* All tests should be able to run indivdiually. When developing integration tests for a
new feature, running the whole suite gets a big impediment. We should therefore allow all
tests to be run individually
IT: tests should be able to run individually and reuse resources
----------------------------------------------------------------
Key: JBIDE-25282
URL:
https://issues.jboss.org/browse/JBIDE-25282
Project: Tools (JBoss Tools)
Issue Type: Epic
Components: openshift
Affects Versions: 4.5.1.AM3
Reporter: Andre Dietisheim
Assignee: Josef Kopriva
Fix For: 4.5.x
* integration tests should reuse OpenShift resources, not start from scratch in each
test. Creating OpenShift applications for instance can easily take up to several minutes.
Multiply this by ex. 100 tests and we're easily at a runtime of several hours for the
whole suite.
The Requirements that we have in reddeer OpenShift were create with re-using resources in
mind.
** Ex. annotating a test class with
{code}
@RequiredProject(
name = DatastoreOS3.TEST_PROJECT)
{code}
makes sure that there's a project "test-project" that exists in the
OpenShift server that's being used. If it exists, the annotation would do nothing. It
creates it if it doesnt exist.
The required project (either pre-existing the test or created upfront if it didnt) is
injected into the test via
{code}
@InjectRequirement
protected static OpenShiftProjectRequirement requiredProject;
{code}
** Ex. annotating a test class with
{code}
@RequiredService(
project = DatastoreOS3.TEST_PROJECT,
service = OpenShiftResources.NODEJS_SERVICE,
template = OpenShiftResources.NODEJS_TEMPLATE)
{code}
makes sure that the test has a service called "nodejs-example" available. If it
exists it wont do anything. If it doesn't, it'll create it using the
NODEJS_TEMPLATE provided in the annotation.
* All tests should be able to run indivdiually. When developing integration tests for a
new feature, running the whole suite gets a big impediment. We should therefore allow all
tests to be run individually
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)