You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@submarine.apache.org by li...@apache.org on 2020/03/11 15:30:32 UTC
[submarine] branch master updated: SUBMARINE-423. Update the E2E
test document
This is an automated email from the ASF dual-hosted git repository.
liuxun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git
The following commit(s) were added to refs/heads/master by this push:
new fec5d96 SUBMARINE-423. Update the E2E test document
fec5d96 is described below
commit fec5d96e191c23ed0627fbc169da835d200ad6ad
Author: kevin85421 <b0...@ntu.edu.tw>
AuthorDate: Wed Mar 11 20:14:19 2020 +0800
SUBMARINE-423. Update the E2E test document
### What is this PR for?
Update the E2E test document
### What type of PR is it?
[Improvement]
### Todos
### What is the Jira issue?
https://issues.apache.org/jira/browse/SUBMARINE-423#
### How should this be tested?
https://travis-ci.org/github/kevin85421/hadoop-submarine?utm_medium=notification&utm_source=github_status
### Screenshots (if appropriate)
### Questions:
* Does the licenses files need an update? No
* Are there breaking changes for older versions? No
* Does this needs documentation? No
Author: kevin85421 <b0...@ntu.edu.tw>
Closes #221 from kevin85421/SUBMARINE-423 and squashes the following commits:
6a74fd4 [kevin85421] SUBMARINE-423. Update the E2E test document
---
docs/development/IntegrationTest.md | 61 ++++++++++++++++++++-----------------
1 file changed, 33 insertions(+), 28 deletions(-)
diff --git a/docs/development/IntegrationTest.md b/docs/development/IntegrationTest.md
index d3ca301..b6e81ff 100644
--- a/docs/development/IntegrationTest.md
+++ b/docs/development/IntegrationTest.md
@@ -12,17 +12,13 @@
limitations under the License. See accompanying LICENSE file.
-->
-# IntegrationTest
+# Integration Test
+## Introduction
+1. Now, Apache Submarine supports two kinds of integration test: `test-e2e` and `test-k8s`. These two modules can be found in the [submarine/submarine-test](https://github.com/apache/submarine/tree/master/submarine-test) directory.
-Submarine now supports two kinds of integration tests.
+2. Currently, there are some differences between `test-e2e` and `test-k8s` in operation mode. To elaborate, `test-e2e` needs to deploy Apache Submarine locally, while `test-k8s` deploys Apache Submarine via k8s.
-They are in the project's `submarine/submarine-test` directory, There are two modules, `e2e` and `test-k8s`.
-
-There are currently some differences between `test-e2e` and `test-k8s` in operation mode.
-
-Among them, `test-e2e` needs to deploy submarine locally, while `test-k8s` uses k8s to deploy submarine.
-
-These two different test methods can be applied to different test scenarios. (In the future, these two test methods may be combined or adjusted)
+3. These two test modules can be applied to different test scenarios. (In the future, these two test modules may be combined or adjusted)
## k8s test
@@ -54,14 +50,28 @@ mvn -Phadoop-2.9 clean package install -DskipTests verify -DskipRat -am -pl subm
Each time a code is submitted, travis is automatically triggered for testing.
-## e2e test
-
-e2e tests can be ran both locally and in Travis
-
-Local testing: When developers perform e2e testing locally, they need to manually start the submarine server by executing bin / submarine-daemon.sh.
-
-Then you can manually runs test cases in the `test-e2e/test` directory in IDEA.
-
+## E2E test
+
+### E2E tests can be executed both locally and in Travis (For workbench developer)
+* Run E2E tests locally:
+ * Step1: Follow [HowToRun.md](https://github.com/apache/submarine/blob/master/docs/workbench/HowToRun.md) to launch the submarine-server and database.
+ * Step2: Run workbench (Angular version) locally
+ ```
+ cd submarine/submarine-workbench/workbench-web-ng
+ npm start
+ // Check 127.0.0.1:4200
+ ```
+ * Step3: Modify the port from 8080 to 4200
+ * [WebDriverManager.java](https://github.com/apache/submarine/blob/master/submarine-test/test-e2e/src/test/java/org/apache/submarine/WebDriverManager.java): `url = "http://localhost:8080";` --> `url = "http://localhost:4200";`
+ * [Your Unit test case](https://github.com/apache/submarine/tree/master/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration): `8080` --> `4200`
+ * Step4: Comment the `headless` option
+ * [ChromeWebDriverProvider.java](https://github.com/apache/submarine/blob/master/submarine-test/test-e2e/src/test/java/org/apache/submarine/ChromeWebDriverProvider.java): `chromeOptions.addArguments("--headless");` --> `//chromeOptions.addArguments("--headless");`
+ * With the `headless` option, the selenium will be executed in background.
+ * Step5: Run E2E test cases (Please check the following section **Run the existing tests**)
+* Run E2E tests in Travis:
+ * Step1: Make sure that the port must be 8080 rather than in [WebDriverManager.java](https://github.com/apache/submarine/blob/master/submarine-test/test-e2e/src/test/java/org/apache/submarine/WebDriverManager.java) and [all test cases](https://github.com/apache/submarine/tree/master/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration).
+ * Step2: Make sure that the `headless` option is not commented in [ChromeWebDriverProvider.java](https://github.com/apache/submarine/blob/master/submarine-test/test-e2e/src/test/java/org/apache/submarine/ChromeWebDriverProvider.java).
+ * Step3: If you push the commit to Github, the Travis CI will execute automatically and you can check it in `https://travis-ci.org/${your_github_account}/${your_repo_name}`.
### Run the existing tests.
##### Move to the working directroy.
```
@@ -69,24 +79,19 @@ cd submarine/submarine-test/test-e2e
```
##### Compile & Run.
-> Following command will compile all files and run all files ending with "IT".
-
-**If your workbench server is not working on port 32777 ([mini-submarine](https://github.com/apache/submarine/tree/master/dev-support/mini-submarine) maps the workbench port 8000 to 32777), please first modify the port in WebDriverManager.java line 61 to the port where your workbench run.**
-
-* Execute the following command in your host machine to get the port
-```
-docker inspect --format='{{(index (index .NetworkSettings.Ports "8080/tcp") 0).HostPort}}' mini-submarine
-```
-
+> Following command will compile all files and run **all** files ending with "IT" in the [directory](https://github.com/apache/submarine/tree/master/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration).
* For linux
```
mvn verify
```
-
* For MacOS
```
mvn clean install -U
```
+> Run a specific testcase
+```
+mvn -Dtest=${your_test_case_file_name} test //ex: mvn -Dtest=loginIT test
+```
##### Result
If all of the function under test are succeeded, it will show.
@@ -99,7 +104,7 @@ BUILD FAILURE
```
### Add your own integration test
-1. Create new file ending with "IT" under "submarine/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/".
+1. Create a new file ending with "IT" under "submarine/submarine-test/test-e2e/src/test/java/org/apache/submarine/integration/".
2. Your public class is recommended to extend AbstractSubmarineIT. The class AbstractSubmarineIT contains some commonly used functions.
```java
WebElement pollingWait(final By locator, final long timeWait); // Find element on the website.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@submarine.apache.org
For additional commands, e-mail: dev-help@submarine.apache.org