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