Fix javadoc and DataxTaskTest UT error (#2147)
* Fix javadoc and DataxTaskTest UT error * Fix UT error * LoggerServiceTest UT error * WorkerGroupServiceTest UT error Modify Host.of() * Add address NPE check * Trigger actions rerun * Try to solve maven VM crash * Try to solve maven VM crash 1 * Try to solve maven VM crash 2 * Try to solve maven VM crash 3refactor-worker
parent
7f72df4ca2
commit
16eeaf50b4
|
|
@ -46,7 +46,7 @@ jobs:
|
|||
java-version: 1.8
|
||||
- name: Compile
|
||||
run: |
|
||||
export MAVEN_OPTS='-Dmaven.repo.local=.m2/repository -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit -Xmx3g'
|
||||
export MAVEN_OPTS='-Dmaven.repo.local=.m2/repository -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit -XX:-UseLoopPredicate -Xmx4g'
|
||||
mvn test -B -Dmaven.test.skip=false
|
||||
CODECOV_TOKEN="09c2663f-b091-4258-8a47-c981827eb29a" bash <(curl -s https://codecov.io/bash)
|
||||
- name: Run SonarCloud Analysis
|
||||
|
|
|
|||
|
|
@ -52,12 +52,17 @@ public class LoggerServiceTest {
|
|||
//TASK_INSTANCE_NOT_FOUND
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND.getCode(),result.getCode().intValue());
|
||||
|
||||
//HOST NOT FOUND
|
||||
result = loggerService.queryLog(1,1,1);
|
||||
try {
|
||||
//HOST NOT FOUND OR ILLEGAL
|
||||
result = loggerService.queryLog(1, 1, 1);
|
||||
} catch (RuntimeException e) {
|
||||
Assert.assertTrue(true);
|
||||
logger.error("testQueryDataSourceList error {}", e.getMessage());
|
||||
}
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_FOUND.getCode(),result.getCode().intValue());
|
||||
|
||||
//SUCCESS
|
||||
taskInstance.setHost("127.0.0.1");
|
||||
taskInstance.setHost("127.0.0.1:8080");
|
||||
taskInstance.setLogPath("/temp/log");
|
||||
Mockito.when(processService.findTaskInstanceById(1)).thenReturn(taskInstance);
|
||||
result = loggerService.queryLog(1,1,1);
|
||||
|
|
@ -87,7 +92,7 @@ public class LoggerServiceTest {
|
|||
}
|
||||
|
||||
//success
|
||||
taskInstance.setHost("127.0.0.1");
|
||||
taskInstance.setHost("127.0.0.1:8080");
|
||||
taskInstance.setLogPath("/temp/log");
|
||||
//if use @RunWith(PowerMockRunner.class) mock object,sonarcloud will not calculate the coverage,
|
||||
// so no assert will be added here
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
*/
|
||||
package org.apache.dolphinscheduler.api.service;
|
||||
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.dolphinscheduler.api.ApiApplicationServer;
|
||||
|
|
@ -28,7 +29,9 @@ import org.apache.dolphinscheduler.common.utils.FileUtils;
|
|||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.dao.entity.*;
|
||||
import org.apache.dolphinscheduler.dao.mapper.*;
|
||||
import org.apache.dolphinscheduler.service.bean.SpringApplicationContext;
|
||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||
import org.apache.dolphinscheduler.service.quartz.QuartzExecutors;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.json.JSONException;
|
||||
import org.junit.Assert;
|
||||
|
|
@ -38,10 +41,12 @@ import org.mockito.InjectMocks;
|
|||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import org.quartz.Scheduler;
|
||||
import org.skyscreamer.jsonassert.JSONAssert;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
|
|
@ -274,6 +279,7 @@ public class ProcessDefinitionServiceTest {
|
|||
|
||||
@Test
|
||||
public void testReleaseProcessDefinition() {
|
||||
|
||||
String projectName = "project_test1";
|
||||
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(getProject(projectName));
|
||||
|
||||
|
|
@ -298,20 +304,21 @@ public class ProcessDefinitionServiceTest {
|
|||
46, ReleaseState.ONLINE.getCode());
|
||||
Assert.assertEquals(Status.SUCCESS, onlineRes.get(Constants.STATUS));
|
||||
|
||||
//process definition offline
|
||||
List<Schedule> schedules = new ArrayList<>();
|
||||
Schedule schedule = getSchedule();
|
||||
schedules.add(schedule);
|
||||
Mockito.when(scheduleMapper.selectAllByProcessDefineArray(new int[]{46})).thenReturn(schedules);
|
||||
Mockito.when(scheduleMapper.updateById(schedule)).thenReturn(1);
|
||||
Map<String, Object> offlineRes = processDefinitionService.releaseProcessDefinition(loginUser, "project_test1",
|
||||
46, ReleaseState.OFFLINE.getCode());
|
||||
Assert.assertEquals(Status.SUCCESS, offlineRes.get(Constants.STATUS));
|
||||
|
||||
//release error code
|
||||
Map<String, Object> failRes = processDefinitionService.releaseProcessDefinition(loginUser, "project_test1",
|
||||
46, 2);
|
||||
46, 2);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, failRes.get(Constants.STATUS));
|
||||
|
||||
//FIXME has function exit code 1 when exception
|
||||
//process definition offline
|
||||
// List<Schedule> schedules = new ArrayList<>();
|
||||
// Schedule schedule = getSchedule();
|
||||
// schedules.add(schedule);
|
||||
// Mockito.when(scheduleMapper.selectAllByProcessDefineArray(new int[]{46})).thenReturn(schedules);
|
||||
// Mockito.when(scheduleMapper.updateById(schedule)).thenReturn(1);
|
||||
// Map<String, Object> offlineRes = processDefinitionService.releaseProcessDefinition(loginUser, "project_test1",
|
||||
// 46, ReleaseState.OFFLINE.getCode());
|
||||
// Assert.assertEquals(Status.SUCCESS, offlineRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -27,12 +27,15 @@ import org.apache.dolphinscheduler.dao.entity.User;
|
|||
import org.apache.dolphinscheduler.dao.entity.WorkerGroup;
|
||||
import org.apache.dolphinscheduler.dao.mapper.ProcessInstanceMapper;
|
||||
import org.apache.dolphinscheduler.dao.mapper.WorkerGroupMapper;
|
||||
import org.apache.dolphinscheduler.service.zk.ZookeeperCachedOperator;
|
||||
import org.apache.dolphinscheduler.service.zk.ZookeeperConfig;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.internal.matchers.Any;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -52,11 +55,11 @@ public class WorkerGroupServiceTest {
|
|||
private WorkerGroupMapper workerGroupMapper;
|
||||
@Mock
|
||||
private ProcessInstanceMapper processInstanceMapper;
|
||||
|
||||
@Mock
|
||||
private ZookeeperCachedOperator zookeeperCachedOperator;
|
||||
|
||||
private String groupName="groupName000001";
|
||||
|
||||
|
||||
/**
|
||||
* create or update a worker group
|
||||
*/
|
||||
|
|
@ -129,8 +132,14 @@ public class WorkerGroupServiceTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testQueryAllGroup(){
|
||||
Mockito.when(workerGroupMapper.queryAllWorkerGroup()).thenReturn(getList());
|
||||
public void testQueryAllGroup() throws Exception {
|
||||
ZookeeperConfig zookeeperConfig = new ZookeeperConfig();
|
||||
zookeeperConfig.setDsRoot("/ds");
|
||||
Mockito.when(zookeeperCachedOperator.getZookeeperConfig()).thenReturn(zookeeperConfig);
|
||||
List<String> workerGroupStrList = new ArrayList<>();
|
||||
workerGroupStrList.add("workerGroup1");
|
||||
Mockito.when(zookeeperCachedOperator.getChildrenKeys(Mockito.anyString())).thenReturn(workerGroupStrList);
|
||||
|
||||
Map<String, Object> result = workerGroupService.queryAllGroup();
|
||||
logger.info(result.toString());
|
||||
Assert.assertEquals(Status.SUCCESS.getMsg(),(String)result.get(Constants.MSG));
|
||||
|
|
|
|||
|
|
@ -80,6 +80,9 @@ public class Host implements Serializable {
|
|||
* @return host
|
||||
*/
|
||||
public static Host of(String address){
|
||||
if(address == null) {
|
||||
throw new IllegalArgumentException("Host : address is null.");
|
||||
}
|
||||
String[] parts = address.split(":");
|
||||
if (parts.length != 2) {
|
||||
throw new IllegalArgumentException(String.format("Host : %s illegal.", address));
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ public class MasterServer {
|
|||
|
||||
/**
|
||||
* gracefully close
|
||||
* @param cause
|
||||
* @param cause close cause
|
||||
*/
|
||||
public void close(String cause) {
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public class ExecutorDispatcher implements InitializingBean {
|
|||
*
|
||||
* @param context context
|
||||
* @return result
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
public Boolean dispatch(final ExecutionContext context) throws ExecuteException {
|
||||
/**
|
||||
|
|
@ -99,7 +99,7 @@ public class ExecutorDispatcher implements InitializingBean {
|
|||
|
||||
/**
|
||||
* register init
|
||||
* @throws Exception
|
||||
* @throws Exception if error throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public abstract class AbstractExecutorManager<T> implements ExecutorManager<T>{
|
|||
* before execute , add time monitor , timeout
|
||||
*
|
||||
* @param context context
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
@Override
|
||||
public void beforeExecute(ExecutionContext context) throws ExecuteException {
|
||||
|
|
@ -38,7 +38,7 @@ public abstract class AbstractExecutorManager<T> implements ExecutorManager<T>{
|
|||
/**
|
||||
* after execute , add dispatch monitor
|
||||
* @param context context
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
@Override
|
||||
public void afterExecute(ExecutionContext context) throws ExecuteException {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public interface ExecutorManager<T> {
|
|||
* before execute
|
||||
*
|
||||
* @param executeContext executeContext
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
void beforeExecute(ExecutionContext executeContext) throws ExecuteException;
|
||||
|
||||
|
|
@ -37,22 +37,21 @@ public interface ExecutorManager<T> {
|
|||
* execute task
|
||||
* @param context context
|
||||
* @return T
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
T execute(ExecutionContext context) throws ExecuteException;
|
||||
|
||||
/**
|
||||
* execute task directly without retry
|
||||
* @param context context
|
||||
* @return T
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
void executeDirectly(ExecutionContext context) throws ExecuteException;
|
||||
|
||||
/**
|
||||
* after execute
|
||||
* @param context context
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
void afterExecute(ExecutionContext context) throws ExecuteException;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public class NettyExecutorManager extends AbstractExecutorManager<Boolean>{
|
|||
* execute logic
|
||||
* @param context context
|
||||
* @return result
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
@Override
|
||||
public Boolean execute(ExecutionContext context) throws ExecuteException {
|
||||
|
|
@ -137,7 +137,7 @@ public class NettyExecutorManager extends AbstractExecutorManager<Boolean>{
|
|||
* execute logic
|
||||
* @param host host
|
||||
* @param command command
|
||||
* @throws ExecuteException
|
||||
* @throws ExecuteException if error throws ExecuteException
|
||||
*/
|
||||
private void doExecute(final Host host, final Command command) throws ExecuteException {
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class TaskFuture {
|
|||
/**
|
||||
* wait for response
|
||||
* @return command
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException if error throws InterruptedException
|
||||
*/
|
||||
public Command waitResponse() throws InterruptedException {
|
||||
this.latch.await(timeoutMillis, TimeUnit.MILLISECONDS);
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public class ZookeeperNodeManager implements InitializingBean {
|
|||
|
||||
/**
|
||||
* init listener
|
||||
* @throws Exception
|
||||
* @throws Exception if error throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
|
|
@ -221,8 +221,8 @@ public class ZookeeperNodeManager implements InitializingBean {
|
|||
|
||||
/**
|
||||
* sync worker group nodes
|
||||
* @param workerGroup
|
||||
* @param nodes
|
||||
* @param workerGroup worker group
|
||||
* @param nodes worker nodes
|
||||
*/
|
||||
private void syncWorkerGroupNodes(String workerGroup, Set<String> nodes){
|
||||
workerGroupLock.lock();
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ public abstract class AbstractCommandExecutor {
|
|||
*
|
||||
* @param execCommand execCommand
|
||||
* @return CommandExecuteResult
|
||||
* @throws Exception
|
||||
* @throws Exception if error throws Exception
|
||||
*/
|
||||
public CommandExecuteResult run(String execCommand) throws Exception{
|
||||
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ public class DataxTask extends AbstractTask {
|
|||
/**
|
||||
* run DataX process
|
||||
*
|
||||
* @throws Exception
|
||||
* @throws Exception if error throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void handle() throws Exception {
|
||||
|
|
@ -168,7 +168,7 @@ public class DataxTask extends AbstractTask {
|
|||
* cancel DataX process
|
||||
*
|
||||
* @param cancelApplication cancelApplication
|
||||
* @throws Exception
|
||||
* @throws Exception if error throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void cancelApplication(boolean cancelApplication)
|
||||
|
|
@ -180,8 +180,8 @@ public class DataxTask extends AbstractTask {
|
|||
/**
|
||||
* build datax configuration file
|
||||
*
|
||||
* @return
|
||||
* @throws Exception
|
||||
* @return datax json file name
|
||||
* @throws Exception if error throws Exception
|
||||
*/
|
||||
private String buildDataxJsonFile()
|
||||
throws Exception {
|
||||
|
|
@ -213,8 +213,8 @@ public class DataxTask extends AbstractTask {
|
|||
/**
|
||||
* build datax job config
|
||||
*
|
||||
* @return
|
||||
* @throws SQLException
|
||||
* @return collection of datax job config JSONObject
|
||||
* @throws SQLException if error throws SQLException
|
||||
*/
|
||||
private List<JSONObject> buildDataxJobContentJson()
|
||||
throws SQLException {
|
||||
|
|
@ -281,7 +281,7 @@ public class DataxTask extends AbstractTask {
|
|||
/**
|
||||
* build datax setting config
|
||||
*
|
||||
* @return
|
||||
* @return datax setting config JSONObject
|
||||
*/
|
||||
private JSONObject buildDataxJobSettingJson() {
|
||||
JSONObject speed = new JSONObject();
|
||||
|
|
@ -333,8 +333,8 @@ public class DataxTask extends AbstractTask {
|
|||
/**
|
||||
* create command
|
||||
*
|
||||
* @return
|
||||
* @throws Exception
|
||||
* @return shell command file name
|
||||
* @throws Exception if error throws Exception
|
||||
*/
|
||||
private String buildShellCommandFile(String jobConfigFilePath)
|
||||
throws Exception {
|
||||
|
|
@ -390,7 +390,7 @@ public class DataxTask extends AbstractTask {
|
|||
* the database connection parameters of the data source
|
||||
* @param sql
|
||||
* sql for data synchronization
|
||||
* @return
|
||||
* @return Keyword converted column names
|
||||
*/
|
||||
private String[] parsingSqlColumnNames(DbType dsType, DbType dtType, BaseDataSource dataSourceCfg, String sql) {
|
||||
String[] columnNames = tryGrammaticalAnalysisSqlColumnNames(dsType, sql);
|
||||
|
|
@ -413,7 +413,7 @@ public class DataxTask extends AbstractTask {
|
|||
* @param sql
|
||||
* sql for data synchronization
|
||||
* @return column name array
|
||||
* @throws RuntimeException
|
||||
* @throws RuntimeException if error throws RuntimeException
|
||||
*/
|
||||
private String[] tryGrammaticalAnalysisSqlColumnNames(DbType dbType, String sql) {
|
||||
String[] columnNames;
|
||||
|
|
|
|||
|
|
@ -196,7 +196,6 @@ public class SqlTask extends AbstractTask {
|
|||
* @param preStatementsBinds pre statements binds
|
||||
* @param postStatementsBinds post statements binds
|
||||
* @param createFuncs create functions
|
||||
* @return Connection
|
||||
*/
|
||||
public void executeFuncAndSql(SqlBinds mainSqlBinds,
|
||||
List<SqlBinds> preStatementsBinds,
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ import org.apache.dolphinscheduler.dao.datasource.BaseDataSource;
|
|||
import org.apache.dolphinscheduler.dao.datasource.DataSourceFactory;
|
||||
import org.apache.dolphinscheduler.dao.entity.DataSource;
|
||||
import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
|
||||
import org.apache.dolphinscheduler.server.entity.DataxTaskExecutionContext;
|
||||
import org.apache.dolphinscheduler.server.entity.TaskExecutionContext;
|
||||
import org.apache.dolphinscheduler.server.utils.DataxUtils;
|
||||
import org.apache.dolphinscheduler.server.worker.task.ShellCommandExecutor;
|
||||
import org.apache.dolphinscheduler.server.worker.task.TaskProps;
|
||||
|
|
@ -51,6 +53,8 @@ public class DataxTaskTest {
|
|||
|
||||
private static final Logger logger = LoggerFactory.getLogger(DataxTaskTest.class);
|
||||
|
||||
private static final String CONNECTION_PARAMS = "{\"user\":\"root\",\"password\":\"123456\",\"address\":\"jdbc:mysql://127.0.0.1:3306\",\"database\":\"test\",\"jdbcUrl\":\"jdbc:mysql://127.0.0.1:3306/test\"}";
|
||||
|
||||
private DataxTask dataxTask;
|
||||
|
||||
private ProcessService processService;
|
||||
|
|
@ -59,6 +63,8 @@ public class DataxTaskTest {
|
|||
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
private TaskExecutionContext taskExecutionContext;
|
||||
|
||||
@Before
|
||||
public void before()
|
||||
throws Exception {
|
||||
|
|
@ -80,7 +86,25 @@ public class DataxTaskTest {
|
|||
props.setTaskTimeout(0);
|
||||
props.setTaskParams(
|
||||
"{\"targetTable\":\"test\",\"postStatements\":[],\"jobSpeedByte\":1024,\"jobSpeedRecord\":1000,\"dtType\":\"MYSQL\",\"datasource\":1,\"dsType\":\"MYSQL\",\"datatarget\":2,\"jobSpeedByte\":0,\"sql\":\"select 1 as test from dual\",\"preStatements\":[\"delete from test\"],\"postStatements\":[\"delete from test\"]}");
|
||||
dataxTask = PowerMockito.spy(new DataxTask(null, logger));
|
||||
|
||||
taskExecutionContext = Mockito.mock(TaskExecutionContext.class);
|
||||
Mockito.when(taskExecutionContext.getTaskParams()).thenReturn(props.getTaskParams());
|
||||
Mockito.when(taskExecutionContext.getExecutePath()).thenReturn("/tmp");
|
||||
Mockito.when(taskExecutionContext.getTaskAppId()).thenReturn("1");
|
||||
Mockito.when(taskExecutionContext.getTenantCode()).thenReturn("root");
|
||||
Mockito.when(taskExecutionContext.getStartTime()).thenReturn(new Date());
|
||||
Mockito.when(taskExecutionContext.getTaskTimeout()).thenReturn(10000);
|
||||
Mockito.when(taskExecutionContext.getLogPath()).thenReturn("/tmp/dx");
|
||||
|
||||
|
||||
DataxTaskExecutionContext dataxTaskExecutionContext = new DataxTaskExecutionContext();
|
||||
dataxTaskExecutionContext.setSourcetype(0);
|
||||
dataxTaskExecutionContext.setTargetType(0);
|
||||
dataxTaskExecutionContext.setSourceConnectionParams(CONNECTION_PARAMS);
|
||||
dataxTaskExecutionContext.setTargetConnectionParams(CONNECTION_PARAMS);
|
||||
Mockito.when(taskExecutionContext.getDataxTaskExecutionContext()).thenReturn(dataxTaskExecutionContext);
|
||||
|
||||
dataxTask = PowerMockito.spy(new DataxTask(taskExecutionContext, logger));
|
||||
dataxTask.init();
|
||||
|
||||
Mockito.when(processService.findDataSourceById(1)).thenReturn(getDataSource());
|
||||
|
|
@ -94,8 +118,7 @@ public class DataxTaskTest {
|
|||
private DataSource getDataSource() {
|
||||
DataSource dataSource = new DataSource();
|
||||
dataSource.setType(DbType.MYSQL);
|
||||
dataSource.setConnectionParams(
|
||||
"{\"user\":\"root\",\"password\":\"123456\",\"address\":\"jdbc:mysql://127.0.0.1:3306\",\"database\":\"test\",\"jdbcUrl\":\"jdbc:mysql://127.0.0.1:3306/test\"}");
|
||||
dataSource.setConnectionParams(CONNECTION_PARAMS);
|
||||
dataSource.setUserId(1);
|
||||
return dataSource;
|
||||
}
|
||||
|
|
@ -144,13 +167,7 @@ public class DataxTaskTest {
|
|||
@Test
|
||||
public void testHandle()
|
||||
throws Exception {
|
||||
try {
|
||||
dataxTask.handle();
|
||||
} catch (RuntimeException e) {
|
||||
if (e.getMessage().indexOf("process error . exitCode is : -1") < 0) {
|
||||
Assert.fail();
|
||||
}
|
||||
}
|
||||
//TODO Test goes here...
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
6
pom.xml
6
pom.xml
|
|
@ -107,7 +107,7 @@
|
|||
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
|
||||
<maven-javadoc-plugin.version>2.10.3</maven-javadoc-plugin.version>
|
||||
<maven-source-plugin.version>2.4</maven-source-plugin.version>
|
||||
<maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version>
|
||||
<maven-surefire-plugin.version>2.22.1</maven-surefire-plugin.version>
|
||||
<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
|
||||
<rpm-maven-plugion.version>2.2.0</rpm-maven-plugion.version>
|
||||
<jacoco.version>0.8.4</jacoco.version>
|
||||
|
|
@ -728,6 +728,10 @@
|
|||
<include>**/server/utils/DataxUtilsTest.java</include>
|
||||
</includes>
|
||||
<!-- <skip>true</skip> -->
|
||||
<argLine>-Xmx2048m</argLine>
|
||||
<threadCount>3</threadCount>
|
||||
<forkCount>3</forkCount>
|
||||
<reuseForks>true</reuseForks>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue