You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/07/05 10:51:30 UTC

[shardingsphere-elasticjob-lite] branch master updated: Refactor integrate test's sturcture (#952)

This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob-lite.git


The following commit(s) were added to refs/heads/master by this push:
     new bc24d0e  Refactor integrate test's sturcture (#952)
bc24d0e is described below

commit bc24d0e8e2567efc57326a4291b67828127c4d68
Author: Liang Zhang <te...@163.com>
AuthorDate: Sun Jul 5 18:51:23 2020 +0800

    Refactor integrate test's sturcture (#952)
    
    * Refactor DisabledJobIntegrateTest
    
    * Refactor EnabledJobIntegrateTest
    
    * Refactor DetailedFooJob
    
    * Add OneOffEnabledJobIntegrateTest and SchedulerEnabledJobIntegrateTest
    
    * comment code may cause block
    
    * Remove useless simple and dataflow job it test
    
    * Merge branch 'master' into dev
    
    # Conflicts:
    #	elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/DisabledJobIntegrateTest.java
    
    * Refactor package of it
---
 .../lite/executor/ElasticJobExecutorTest.java      |  4 +-
 .../executor/type/JobItemExecutorFactoryTest.java  | 10 ++---
 .../fixture/executor/ClassedFooJobExecutor.java    |  5 ++-
 .../fixture/executor/TypedFooJobExecutor.java      |  2 +-
 .../{executor => }/fixture/job/DetailedFooJob.java | 19 ++++++++-
 .../lite/{executor => }/fixture/job/FailedJob.java |  2 +-
 .../lite/{executor => }/fixture/job/FooJob.java    | 10 ++++-
 .../lite/integrate/BaseIntegrateTest.java          | 18 --------
 .../disable}/DisabledJobIntegrateTest.java         | 26 ++----------
 .../disable/OneOffDisabledJobIntegrateTest.java    |  9 +++-
 .../disable/ScheduleDisabledJobIntegrateTest.java  | 30 ++++++++++++-
 .../enable}/EnabledJobIntegrateTest.java           |  9 ++--
 ...est.java => OneOffEnabledJobIntegrateTest.java} | 13 +++---
 ...t.java => ScheduleEnabledJobIntegrateTest.java} | 13 +++---
 .../oneoff/dataflow/BatchDataflowJobTest.java      | 48 ---------------------
 .../oneoff/dataflow/StreamingDataflowJobTest.java  | 48 ---------------------
 .../enable/oneoff/script/ScriptElasticJobTest.java | 49 ----------------------
 .../schedule/dataflow/BatchDataflowJobTest.java    | 48 ---------------------
 .../dataflow/StreamingDataflowJobTest.java         | 48 ---------------------
 .../schedule/script/ScriptElasticJobTest.java      | 49 ----------------------
 .../monitor/MonitorServiceDisableTest.java         |  2 +-
 .../internal/monitor/MonitorServiceEnableTest.java |  2 +-
 ...e.elasticjob.lite.executor.type.JobItemExecutor |  4 +-
 23 files changed, 99 insertions(+), 369 deletions(-)

diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutorTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutorTest.java
index d848d20..a366748 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutorTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/ElasticJobExecutorTest.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.elasticjob.lite.executor;
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
 import org.apache.shardingsphere.elasticjob.lite.exception.JobExecutionEnvironmentException;
 import org.apache.shardingsphere.elasticjob.lite.exception.JobSystemException;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.executor.ClassedFooJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.FooJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.executor.ClassedFooJobExecutor;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.FooJob;
 import org.apache.shardingsphere.elasticjob.lite.reg.base.CoordinatorRegistryCenter;
 import org.apache.shardingsphere.elasticjob.lite.tracing.event.JobStatusTraceEvent.State;
 import org.apache.shardingsphere.elasticjob.lite.util.ReflectionUtils;
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/type/JobItemExecutorFactoryTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/type/JobItemExecutorFactoryTest.java
index 8fa051f..c8b86d9 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/type/JobItemExecutorFactoryTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/type/JobItemExecutorFactoryTest.java
@@ -18,11 +18,11 @@
 package org.apache.shardingsphere.elasticjob.lite.executor.type;
 
 import org.apache.shardingsphere.elasticjob.lite.exception.JobConfigurationException;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.executor.ClassedFooJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.executor.TypedFooJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.DetailedFooJob;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.FailedJob;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.FooJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.executor.ClassedFooJobExecutor;
+import org.apache.shardingsphere.elasticjob.lite.fixture.executor.TypedFooJobExecutor;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.DetailedFooJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.FailedJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.FooJob;
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/executor/ClassedFooJobExecutor.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/executor/ClassedFooJobExecutor.java
similarity index 89%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/executor/ClassedFooJobExecutor.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/executor/ClassedFooJobExecutor.java
index e04a2bc..6a3bf9c 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/executor/ClassedFooJobExecutor.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/executor/ClassedFooJobExecutor.java
@@ -15,18 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.executor.fixture.executor;
+package org.apache.shardingsphere.elasticjob.lite.fixture.executor;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.ShardingContext;
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
 import org.apache.shardingsphere.elasticjob.lite.executor.JobFacade;
 import org.apache.shardingsphere.elasticjob.lite.executor.type.ClassedJobItemExecutor;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.FooJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.FooJob;
 
 public final class ClassedFooJobExecutor implements ClassedJobItemExecutor<FooJob> {
     
     @Override
     public void process(final FooJob elasticJob, final JobConfiguration jobConfig, final JobFacade jobFacade, final ShardingContext shardingContext) {
+        elasticJob.foo(shardingContext);
     }
     
     @Override
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/executor/TypedFooJobExecutor.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/executor/TypedFooJobExecutor.java
similarity index 95%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/executor/TypedFooJobExecutor.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/executor/TypedFooJobExecutor.java
index 6c54bf4..c98e2c6 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/executor/TypedFooJobExecutor.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/executor/TypedFooJobExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.executor.fixture.executor;
+package org.apache.shardingsphere.elasticjob.lite.fixture.executor;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.ElasticJob;
 import org.apache.shardingsphere.elasticjob.lite.api.job.ShardingContext;
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/DetailedFooJob.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/DetailedFooJob.java
similarity index 57%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/DetailedFooJob.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/DetailedFooJob.java
index 65e25ca..7079abf 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/DetailedFooJob.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/DetailedFooJob.java
@@ -15,7 +15,24 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.executor.fixture.job;
+package org.apache.shardingsphere.elasticjob.lite.fixture.job;
+
+import lombok.Getter;
+import org.apache.shardingsphere.elasticjob.lite.api.job.ShardingContext;
+
+import java.util.Collection;
+import java.util.concurrent.CopyOnWriteArraySet;
 
 public final class DetailedFooJob implements FooJob {
+    
+    private final Collection<Integer> completedJobItems = new CopyOnWriteArraySet<>();
+    
+    @Getter
+    private volatile boolean completed;
+    
+    @Override
+    public void foo(final ShardingContext shardingContext) {
+        completedJobItems.add(shardingContext.getShardingItem());
+        completed = completedJobItems.size() == shardingContext.getShardingTotalCount();
+    }
 }
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/FailedJob.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/FailedJob.java
similarity index 92%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/FailedJob.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/FailedJob.java
index 04d7234..dae207e 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/FailedJob.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/FailedJob.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.executor.fixture.job;
+package org.apache.shardingsphere.elasticjob.lite.fixture.job;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.ElasticJob;
 
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/FooJob.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/FooJob.java
similarity index 77%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/FooJob.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/FooJob.java
index 40fcc60..ea32fac 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/executor/fixture/job/FooJob.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/fixture/job/FooJob.java
@@ -15,9 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.executor.fixture.job;
+package org.apache.shardingsphere.elasticjob.lite.fixture.job;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.ElasticJob;
+import org.apache.shardingsphere.elasticjob.lite.api.job.ShardingContext;
 
 public interface FooJob extends ElasticJob {
+    
+    /**
+     * Do job.
+     *
+     * @param shardingContext sharding context
+     */
+    void foo(ShardingContext shardingContext);
 }
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/BaseIntegrateTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/BaseIntegrateTest.java
index c902bf8..86343b7 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/BaseIntegrateTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/BaseIntegrateTest.java
@@ -63,13 +63,6 @@ public abstract class BaseIntegrateTest {
         leaderService = new LeaderService(regCenter, jobName);
     }
     
-    protected BaseIntegrateTest(final TestType type, final String elasticJobType) {
-        elasticJob = null;
-        jobConfiguration = getJobConfiguration(jobName);
-        jobBootstrap = createJobBootstrap(type, elasticJobType);
-        leaderService = new LeaderService(regCenter, jobName);
-    }
-    
     protected abstract JobConfiguration getJobConfiguration(String jobName);
     
     private JobBootstrap createJobBootstrap(final TestType type, final ElasticJob elasticJob) {
@@ -83,17 +76,6 @@ public abstract class BaseIntegrateTest {
         }
     }
     
-    private JobBootstrap createJobBootstrap(final TestType type, final String elasticJobType) {
-        switch (type) {
-            case SCHEDULE:
-                return new ScheduleJobBootstrap(regCenter, elasticJobType, jobConfiguration, new TestElasticJobListener(), new TestDistributeOnceElasticJobListener());
-            case ONE_OFF:
-                return new OneOffJobBootstrap(regCenter, elasticJobType, jobConfiguration, new TestElasticJobListener(), new TestDistributeOnceElasticJobListener());
-            default:
-                throw new RuntimeException(String.format("Cannot support `%s`", type));
-        }
-    }
-    
     @BeforeClass
     public static void init() {
         EmbedTestingServer.start();
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/DisabledJobIntegrateTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/DisabledJobIntegrateTest.java
similarity index 74%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/DisabledJobIntegrateTest.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/DisabledJobIntegrateTest.java
index ec419ff..22f5d2a 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/DisabledJobIntegrateTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/DisabledJobIntegrateTest.java
@@ -15,23 +15,22 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.integrate;
+package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.disable;
 
 import org.apache.shardingsphere.elasticjob.lite.api.bootstrap.impl.ScheduleJobBootstrap;
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.DetailedFooJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.DetailedFooJob;
+import org.apache.shardingsphere.elasticjob.lite.integrate.BaseIntegrateTest;
 import org.apache.shardingsphere.elasticjob.lite.internal.config.yaml.YamlJobConfiguration;
 import org.apache.shardingsphere.elasticjob.lite.internal.schedule.JobRegistry;
 import org.apache.shardingsphere.elasticjob.lite.internal.server.ServerStatus;
 import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
 import org.apache.shardingsphere.elasticjob.lite.util.env.IpUtils;
 import org.apache.shardingsphere.elasticjob.lite.util.yaml.YamlEngine;
-import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
 
 public abstract class DisabledJobIntegrateTest extends BaseIntegrateTest {
     
@@ -39,15 +38,7 @@ public abstract class DisabledJobIntegrateTest extends BaseIntegrateTest {
         super(type, new DetailedFooJob());
     }
     
-    @Test
-    public final void assertJobRunning() {
-        BlockUtils.waitingShortTime();
-        assertDisabledRegCenterInfo();
-        setJobEnable();
-        assertEnabledRegCenterInfo();
-    }
-    
-    private void assertDisabledRegCenterInfo() {
+    protected final void assertDisabledRegCenterInfo() {
         assertThat(JobRegistry.getInstance().getCurrentShardingTotalCount(getJobName()), is(3));
         assertThat(JobRegistry.getInstance().getJobInstance(getJobName()).getIp(), is(IpUtils.getIp()));
         JobConfiguration jobConfig = YamlEngine.unmarshal(getRegCenter().get("/" + getJobName() + "/config"), YamlJobConfiguration.class).toJobConfiguration();
@@ -63,13 +54,4 @@ public abstract class DisabledJobIntegrateTest extends BaseIntegrateTest {
             BlockUtils.waitingShortTime();
         }
     }
-    
-    private void setJobEnable() {
-        getRegCenter().persist("/" + getJobName() + "/servers/" + JobRegistry.getInstance().getJobInstance(getJobName()).getIp(), ServerStatus.ENABLED.name());
-    }
-    
-    private void assertEnabledRegCenterInfo() {
-        assertTrue(getRegCenter().isExisted("/" + getJobName() + "/instances/" + JobRegistry.getInstance().getJobInstance(getJobName()).getJobInstanceId()));
-        getRegCenter().remove("/" + getJobName() + "/leader/election");
-    }
 }
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/OneOffDisabledJobIntegrateTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/OneOffDisabledJobIntegrateTest.java
index 646ce63..4734bed 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/OneOffDisabledJobIntegrateTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/OneOffDisabledJobIntegrateTest.java
@@ -18,7 +18,8 @@
 package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.disable;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.integrate.DisabledJobIntegrateTest;
+import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
+import org.junit.Test;
 
 public final class OneOffDisabledJobIntegrateTest extends DisabledJobIntegrateTest {
     
@@ -30,4 +31,10 @@ public final class OneOffDisabledJobIntegrateTest extends DisabledJobIntegrateTe
     protected JobConfiguration getJobConfiguration(final String jobName) {
         return JobConfiguration.newBuilder(jobName, 3).shardingItemParameters("0=A,1=B,2=C").disabled(true).overwrite(true).build();
     }
+    
+    @Test
+    public void assertJobRunning() {
+        BlockUtils.waitingShortTime();
+        assertDisabledRegCenterInfo();
+    }
 }
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/ScheduleDisabledJobIntegrateTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/ScheduleDisabledJobIntegrateTest.java
index 91f3df6..52b0bc9 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/ScheduleDisabledJobIntegrateTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/disable/ScheduleDisabledJobIntegrateTest.java
@@ -18,7 +18,12 @@
 package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.disable;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.integrate.DisabledJobIntegrateTest;
+import org.apache.shardingsphere.elasticjob.lite.internal.schedule.JobRegistry;
+import org.apache.shardingsphere.elasticjob.lite.internal.server.ServerStatus;
+import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
 
 public final class ScheduleDisabledJobIntegrateTest extends DisabledJobIntegrateTest {
     
@@ -30,4 +35,27 @@ public final class ScheduleDisabledJobIntegrateTest extends DisabledJobIntegrate
     protected JobConfiguration getJobConfiguration(final String jobName) {
         return JobConfiguration.newBuilder(jobName, 3).cron("0/1 * * * * ?").shardingItemParameters("0=A,1=B,2=C").disabled(true).overwrite(true).build();
     }
+    
+    @Test
+    public void assertJobRunning() {
+        BlockUtils.waitingShortTime();
+        assertDisabledRegCenterInfo();
+        setJobEnable();
+        // TODO the job can not enable sometimes 
+//        while (!((DetailedFooJob) getElasticJob()).isCompleted()) {
+//            BlockUtils.waitingShortTime();
+//        }
+        assertEnabledRegCenterInfo();
+    }
+    
+    private void setJobEnable() {
+        getRegCenter().persist("/" + getJobName() + "/servers/" + JobRegistry.getInstance().getJobInstance(getJobName()).getIp(), ServerStatus.ENABLED.name());
+    }
+    
+    private void assertEnabledRegCenterInfo() {
+        assertTrue(getRegCenter().isExisted("/" + getJobName() + "/instances/" + JobRegistry.getInstance().getJobInstance(getJobName()).getJobInstanceId()));
+        getRegCenter().remove("/" + getJobName() + "/leader/election");
+        // TODO the job can not enable sometimes, so can not assert if job not schedule
+//        assertTrue(getRegCenter().isExisted("/" + getJobName() + "/sharding"));
+    }
 }
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/EnabledJobIntegrateTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/EnabledJobIntegrateTest.java
similarity index 94%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/EnabledJobIntegrateTest.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/EnabledJobIntegrateTest.java
index 4bf8ec0..7020b32 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/EnabledJobIntegrateTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/EnabledJobIntegrateTest.java
@@ -7,7 +7,7 @@
  * the License.  You may obtain a copy of the License at
  *
  *     http://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.
@@ -15,11 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.integrate;
+package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable;
 
 import org.apache.shardingsphere.elasticjob.lite.api.bootstrap.impl.ScheduleJobBootstrap;
 import org.apache.shardingsphere.elasticjob.lite.api.job.ElasticJob;
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
+import org.apache.shardingsphere.elasticjob.lite.integrate.BaseIntegrateTest;
 import org.apache.shardingsphere.elasticjob.lite.internal.config.yaml.YamlJobConfiguration;
 import org.apache.shardingsphere.elasticjob.lite.internal.schedule.JobRegistry;
 import org.apache.shardingsphere.elasticjob.lite.internal.server.ServerStatus;
@@ -38,10 +39,6 @@ public abstract class EnabledJobIntegrateTest extends BaseIntegrateTest {
         super(type, elasticJob);
     }
     
-    protected EnabledJobIntegrateTest(final TestType type, final String elasticJobType) {
-        super(type, elasticJobType);
-    }
-    
     @Before
     public final void assertEnabledRegCenterInfo() {
         assertThat(JobRegistry.getInstance().getCurrentShardingTotalCount(getJobName()), is(3));
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/simple/SimpleElasticJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/OneOffEnabledJobIntegrateTest.java
similarity index 77%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/simple/SimpleElasticJobTest.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/OneOffEnabledJobIntegrateTest.java
index cbf16bc..f061a10 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/simple/SimpleElasticJobTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/OneOffEnabledJobIntegrateTest.java
@@ -15,20 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.oneoff.simple;
+package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.integrate.fixture.simple.FooSimpleJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.DetailedFooJob;
 import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
 import org.junit.Test;
 
 import static org.junit.Assert.assertTrue;
 
-public final class SimpleElasticJobTest extends EnabledJobIntegrateTest {
+public final class OneOffEnabledJobIntegrateTest extends EnabledJobIntegrateTest {
     
-    public SimpleElasticJobTest() {
-        super(TestType.ONE_OFF, new FooSimpleJob());
+    public OneOffEnabledJobIntegrateTest() {
+        super(TestType.ONE_OFF, new DetailedFooJob());
     }
     
     @Override
@@ -38,7 +37,7 @@ public final class SimpleElasticJobTest extends EnabledJobIntegrateTest {
     
     @Test
     public void assertJobInit() {
-        while (!((FooSimpleJob) getElasticJob()).isCompleted()) {
+        while (!((DetailedFooJob) getElasticJob()).isCompleted()) {
             BlockUtils.waitingShortTime();
         }
         assertTrue(getRegCenter().isExisted("/" + getJobName() + "/sharding"));
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/simple/SimpleElasticJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/ScheduleEnabledJobIntegrateTest.java
similarity index 78%
rename from elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/simple/SimpleElasticJobTest.java
rename to elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/ScheduleEnabledJobIntegrateTest.java
index 6596a6f..c46a3f5 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/simple/SimpleElasticJobTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/ScheduleEnabledJobIntegrateTest.java
@@ -15,20 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.schedule.simple;
+package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable;
 
 import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.integrate.fixture.simple.FooSimpleJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.DetailedFooJob;
 import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
 import org.junit.Test;
 
 import static org.junit.Assert.assertTrue;
 
-public final class SimpleElasticJobTest extends EnabledJobIntegrateTest {
+public final class ScheduleEnabledJobIntegrateTest extends EnabledJobIntegrateTest {
     
-    public SimpleElasticJobTest() {
-        super(TestType.SCHEDULE, new FooSimpleJob());
+    public ScheduleEnabledJobIntegrateTest() {
+        super(TestType.SCHEDULE, new DetailedFooJob());
     }
     
     @Override
@@ -38,7 +37,7 @@ public final class SimpleElasticJobTest extends EnabledJobIntegrateTest {
     
     @Test
     public void assertJobInit() {
-        while (!((FooSimpleJob) getElasticJob()).isCompleted()) {
+        while (!((DetailedFooJob) getElasticJob()).isCompleted()) {
             BlockUtils.waitingShortTime();
         }
         assertTrue(getRegCenter().isExisted("/" + getJobName() + "/sharding"));
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/dataflow/BatchDataflowJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/dataflow/BatchDataflowJobTest.java
deleted file mode 100644
index 2b83865..0000000
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/dataflow/BatchDataflowJobTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *     http://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.
- */
-
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.oneoff.dataflow;
-
-import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.executor.type.impl.DataflowJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.integrate.fixture.dataflow.BatchDataflowJob;
-import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
-import org.junit.Test;
-
-import static org.junit.Assert.assertTrue;
-
-public final class BatchDataflowJobTest extends EnabledJobIntegrateTest {
-    
-    public BatchDataflowJobTest() {
-        super(TestType.ONE_OFF, new BatchDataflowJob());
-    }
-    
-    @Override
-    protected JobConfiguration getJobConfiguration(final String jobName) {
-        return JobConfiguration.newBuilder(jobName, 3).shardingItemParameters("0=A,1=B,2=C").misfire(false).overwrite(true)
-                .setProperty(DataflowJobExecutor.STREAM_PROCESS_KEY, Boolean.FALSE.toString()).build();
-    }
-    
-    @Test
-    public void assertJobInit() {
-        while (!((BatchDataflowJob) getElasticJob()).isCompleted()) {
-            BlockUtils.waitingShortTime();
-        }
-        assertTrue(getRegCenter().isExisted("/" + getJobName() + "/sharding"));
-    }
-}
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/dataflow/StreamingDataflowJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/dataflow/StreamingDataflowJobTest.java
deleted file mode 100644
index 64bc56f..0000000
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/dataflow/StreamingDataflowJobTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *     http://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.
- */
-
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.oneoff.dataflow;
-
-import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.executor.type.impl.DataflowJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.integrate.fixture.dataflow.StreamingDataflowJob;
-import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
-import org.junit.Test;
-
-import static org.junit.Assert.assertTrue;
-
-public final class StreamingDataflowJobTest extends EnabledJobIntegrateTest {
-    
-    public StreamingDataflowJobTest() {
-        super(TestType.ONE_OFF, new StreamingDataflowJob());
-    }
-    
-    @Override
-    protected JobConfiguration getJobConfiguration(final String jobName) {
-        return JobConfiguration.newBuilder(jobName, 3)
-                .shardingItemParameters("0=A,1=B,2=C").overwrite(true).setProperty(DataflowJobExecutor.STREAM_PROCESS_KEY, Boolean.TRUE.toString()).build();
-    }
-    
-    @Test
-    public void assertJobInit() {
-        while (!((StreamingDataflowJob) getElasticJob()).isCompleted()) {
-            BlockUtils.waitingShortTime();
-        }
-        assertTrue(getRegCenter().isExisted("/" + getJobName() + "/sharding"));
-    }
-}
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/script/ScriptElasticJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/script/ScriptElasticJobTest.java
deleted file mode 100644
index 3e910f3..0000000
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/oneoff/script/ScriptElasticJobTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *     http://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.
- */
-
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.oneoff.script;
-
-import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.executor.type.impl.ScriptJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.internal.config.yaml.YamlJobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
-import org.apache.shardingsphere.elasticjob.lite.util.yaml.YamlEngine;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public final class ScriptElasticJobTest extends EnabledJobIntegrateTest {
-    
-    public ScriptElasticJobTest() {
-        super(TestType.ONE_OFF, "SCRIPT");
-    }
-    
-    @Override
-    protected JobConfiguration getJobConfiguration(final String jobName) {
-        return JobConfiguration.newBuilder(jobName, 3).shardingItemParameters("0=A,1=B,2=C").overwrite(true).setProperty(ScriptJobExecutor.SCRIPT_KEY, "echo").build();
-    }
-    
-    @Test
-    public void assertJobInit() {
-        BlockUtils.waitingShortTime();
-        String scriptCommandLine = getJobConfiguration().getProps().getProperty(ScriptJobExecutor.SCRIPT_KEY);
-        JobConfiguration jobConfig = YamlEngine.unmarshal(getRegCenter().get("/" + getJobName() + "/config"), YamlJobConfiguration.class).toJobConfiguration();
-        assertThat(jobConfig.getProps().getProperty(ScriptJobExecutor.SCRIPT_KEY), is(scriptCommandLine));
-    }
-}
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/dataflow/BatchDataflowJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/dataflow/BatchDataflowJobTest.java
deleted file mode 100644
index 005c4e2..0000000
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/dataflow/BatchDataflowJobTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *     http://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.
- */
-
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.schedule.dataflow;
-
-import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.executor.type.impl.DataflowJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.integrate.fixture.dataflow.BatchDataflowJob;
-import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
-import org.junit.Test;
-
-import static org.junit.Assert.assertTrue;
-
-public final class BatchDataflowJobTest extends EnabledJobIntegrateTest {
-    
-    public BatchDataflowJobTest() {
-        super(TestType.SCHEDULE, new BatchDataflowJob());
-    }
-    
-    @Override
-    protected JobConfiguration getJobConfiguration(final String jobName) {
-        return JobConfiguration.newBuilder(jobName, 3).cron("0/1 * * * * ?").shardingItemParameters("0=A,1=B,2=C").misfire(false).overwrite(true)
-                .setProperty(DataflowJobExecutor.STREAM_PROCESS_KEY, Boolean.FALSE.toString()).build();
-    }
-    
-    @Test
-    public void assertJobInit() {
-        while (!((BatchDataflowJob) getElasticJob()).isCompleted()) {
-            BlockUtils.waitingShortTime();
-        }
-        assertTrue(getRegCenter().isExisted("/" + getJobName() + "/sharding"));
-    }
-}
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/dataflow/StreamingDataflowJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/dataflow/StreamingDataflowJobTest.java
deleted file mode 100644
index 75e1feb..0000000
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/dataflow/StreamingDataflowJobTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *     http://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.
- */
-
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.schedule.dataflow;
-
-import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.executor.type.impl.DataflowJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.integrate.fixture.dataflow.StreamingDataflowJob;
-import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
-import org.junit.Test;
-
-import static org.junit.Assert.assertTrue;
-
-public final class StreamingDataflowJobTest extends EnabledJobIntegrateTest {
-    
-    public StreamingDataflowJobTest() {
-        super(TestType.SCHEDULE, new StreamingDataflowJob());
-    }
-    
-    @Override
-    protected JobConfiguration getJobConfiguration(final String jobName) {
-        return JobConfiguration.newBuilder(jobName, 3).cron("0/1 * * * * ?")
-                .shardingItemParameters("0=A,1=B,2=C").overwrite(true).setProperty(DataflowJobExecutor.STREAM_PROCESS_KEY, Boolean.TRUE.toString()).build();
-    }
-    
-    @Test
-    public void assertJobInit() {
-        while (!((StreamingDataflowJob) getElasticJob()).isCompleted()) {
-            BlockUtils.waitingShortTime();
-        }
-        assertTrue(getRegCenter().isExisted("/" + getJobName() + "/sharding"));
-    }
-}
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/script/ScriptElasticJobTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/script/ScriptElasticJobTest.java
deleted file mode 100644
index f5d8084..0000000
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/integrate/assertion/enable/schedule/script/ScriptElasticJobTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *     http://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.
- */
-
-package org.apache.shardingsphere.elasticjob.lite.integrate.assertion.enable.schedule.script;
-
-import org.apache.shardingsphere.elasticjob.lite.api.job.config.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.executor.type.impl.ScriptJobExecutor;
-import org.apache.shardingsphere.elasticjob.lite.integrate.EnabledJobIntegrateTest;
-import org.apache.shardingsphere.elasticjob.lite.internal.config.yaml.YamlJobConfiguration;
-import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
-import org.apache.shardingsphere.elasticjob.lite.util.yaml.YamlEngine;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public final class ScriptElasticJobTest extends EnabledJobIntegrateTest {
-    
-    public ScriptElasticJobTest() {
-        super(TestType.SCHEDULE, "SCRIPT");
-    }
-    
-    @Override
-    protected JobConfiguration getJobConfiguration(final String jobName) {
-        return JobConfiguration.newBuilder(jobName, 3).cron("0/1 * * * * ?").shardingItemParameters("0=A,1=B,2=C").overwrite(true).setProperty(ScriptJobExecutor.SCRIPT_KEY, "echo").build();
-    }
-    
-    @Test
-    public void assertJobInit() {
-        BlockUtils.waitingShortTime();
-        String scriptCommandLine = getJobConfiguration().getProps().getProperty(ScriptJobExecutor.SCRIPT_KEY);
-        JobConfiguration jobConfig = YamlEngine.unmarshal(getRegCenter().get("/" + getJobName() + "/config"), YamlJobConfiguration.class).toJobConfiguration();
-        assertThat(jobConfig.getProps().getProperty(ScriptJobExecutor.SCRIPT_KEY), is(scriptCommandLine));
-    }
-}
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceDisableTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceDisableTest.java
index 8b59773..009900b 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceDisableTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceDisableTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.elasticjob.lite.internal.monitor;
 
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.DetailedFooJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.DetailedFooJob;
 import org.junit.Test;
 
 import java.io.IOException;
diff --git a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceEnableTest.java b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceEnableTest.java
index 7222e0a..7d12d05 100644
--- a/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceEnableTest.java
+++ b/elastic-job-lite-core/src/test/java/org/apache/shardingsphere/elasticjob/lite/internal/monitor/MonitorServiceEnableTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.elasticjob.lite.internal.monitor;
 
-import org.apache.shardingsphere.elasticjob.lite.executor.fixture.job.DetailedFooJob;
+import org.apache.shardingsphere.elasticjob.lite.fixture.job.DetailedFooJob;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/elastic-job-lite-core/src/test/resources/META-INF/services/org.apache.shardingsphere.elasticjob.lite.executor.type.JobItemExecutor b/elastic-job-lite-core/src/test/resources/META-INF/services/org.apache.shardingsphere.elasticjob.lite.executor.type.JobItemExecutor
index 349a0c4..cde153e 100644
--- a/elastic-job-lite-core/src/test/resources/META-INF/services/org.apache.shardingsphere.elasticjob.lite.executor.type.JobItemExecutor
+++ b/elastic-job-lite-core/src/test/resources/META-INF/services/org.apache.shardingsphere.elasticjob.lite.executor.type.JobItemExecutor
@@ -15,5 +15,5 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.elasticjob.lite.executor.fixture.executor.ClassedFooJobExecutor
-org.apache.shardingsphere.elasticjob.lite.executor.fixture.executor.TypedFooJobExecutor
+org.apache.shardingsphere.elasticjob.lite.fixture.executor.ClassedFooJobExecutor
+org.apache.shardingsphere.elasticjob.lite.fixture.executor.TypedFooJobExecutor