From db93a0eb0d7b096613af97ea7daad37116419b04 Mon Sep 17 00:00:00 2001 From: FuYouJ <1247908487@qq.com> Date: Mon, 14 Aug 2023 20:20:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8A=A5=E9=94=99=E4=B8=BA?= =?UTF-8?q?=E8=8B=B1=E6=96=87=E6=8F=8F=E8=BF=B0=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=80=85=E6=96=87=E6=A1=A3=E5=BB=BA=E8=AE=AE?= =?UTF-8?q?=E7=BC=96=E5=86=99=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新报错为英文描述,更新开发者文档建议编写测试用例 --- .../example/util/ExampleConfigParser.java | 9 +++++---- .../alibaba/datax/example/util/PathUtil.java | 3 ++- .../datax/example/DataXExampleTest.java | 16 ---------------- .../StreamReader2StreamWriterTest.java | 19 +++++++++++++++++++ .../job/{ => stream}/stream2stream.json | 0 dataxPluginDev.md | 4 ++++ 6 files changed, 30 insertions(+), 21 deletions(-) delete mode 100644 datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java create mode 100644 datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java rename datax-example/src/test/resources/job/{ => stream}/stream2stream.json (100%) diff --git a/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java b/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java index aaf4155c..7a24aaf4 100644 --- a/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java +++ b/datax-example/src/main/java/com/alibaba/datax/example/util/ExampleConfigParser.java @@ -55,16 +55,17 @@ public class ExampleConfigParser { } if (!pluginTypeMap.isEmpty()) { String failedPlugin = pluginTypeMap.keySet().toString(); - String message = "\n插件%s加载失败:尝试从以下方面分析原因。\n" + - "1: 检查插件的名字是否书写正确\n" + - "2:相关插件的pom文件的下是否已经添加了 \n" + + String message = "\nplugin %s load failed :ry to analyze the reasons from the following aspects.。\n" + + "1: Check if the name of the plugin is spelled correctly, and verify whether DataX supports this plugin\n" + + "2:Verify if the tag has been added under section in the pom file of the relevant plugin.\n" + " src/main/resources\n" + " \n" + " **/*.*\n" + " \n" + " true\n" + " \n [可参阅streamreader pom文件] \n" + - "3:如果你是以datax-example为启动模块,example模块是否导入了插件的依赖。参开example的pom文件"; + "3:If you are using 'datax-example' as the startup module, " + + "check whether the 'example' module has imported the dependencies of the plugin. Refer to the 'pom' file of the 'example' module"; message = String.format(message, failedPlugin); throw DataXException.asDataXException(FrameworkErrorCode.PLUGIN_INIT_ERROR, message); } diff --git a/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java b/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java index 7efacd88..e197fa73 100644 --- a/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java +++ b/datax-example/src/main/java/com/alibaba/datax/example/util/PathUtil.java @@ -15,10 +15,11 @@ public class PathUtil { public static String getAbsolutePathFromClassPath(String path) { URL resource = PathUtil.class.getResource(path); try { + assert resource != null; URI uri = resource.toURI(); return Paths.get(uri).toString(); } catch (NullPointerException | URISyntaxException e) { - throw DataXException.asDataXException("path 路径错误"); + throw DataXException.asDataXException("path error,please check whether the path is correct"); } } diff --git a/datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java b/datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java deleted file mode 100644 index c2f600cd..00000000 --- a/datax-example/src/test/java/com/alibaba/datax/example/DataXExampleTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.alibaba.datax.example; - - -import com.alibaba.datax.example.util.PathUtil; -import org.junit.Test; - - -public class DataXExampleTest { - - @Test - public void testStreamReader2StreamWriter() { - String path = "/job/stream2stream.json"; - String jobPath = PathUtil.getAbsolutePathFromClassPath(path); - ExampleContainer.start(jobPath); - } -} diff --git a/datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java b/datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java new file mode 100644 index 00000000..8081677e --- /dev/null +++ b/datax-example/src/test/java/com/alibaba/datax/example/streamreader/StreamReader2StreamWriterTest.java @@ -0,0 +1,19 @@ +package com.alibaba.datax.example.streamreader; + +import com.alibaba.datax.example.ExampleContainer; +import com.alibaba.datax.example.util.PathUtil; +import org.junit.Test; + +/** + * {@code Author} FuYouJ + * {@code Date} 2023/8/14 20:16 + */ + +public class StreamReader2StreamWriterTest { + @Test + public void testStreamReader2StreamWriter() { + String path = "/job/stream/stream2stream.json"; + String jobPath = PathUtil.getAbsolutePathFromClassPath(path); + ExampleContainer.start(jobPath); + } +} diff --git a/datax-example/src/test/resources/job/stream2stream.json b/datax-example/src/test/resources/job/stream/stream2stream.json similarity index 100% rename from datax-example/src/test/resources/job/stream2stream.json rename to datax-example/src/test/resources/job/stream/stream2stream.json diff --git a/dataxPluginDev.md b/dataxPluginDev.md index 4483f270..98aa41a3 100644 --- a/dataxPluginDev.md +++ b/dataxPluginDev.md @@ -447,6 +447,10 @@ DataX的内部类型在实现上会选用不同的java类型: 3. 用户在插件中在`reader`/`writer`配置的`name`字段指定插件名字。框架根据插件的类型(`reader`/`writer`)和插件名称去插件的路径下扫描所有的jar,加入`classpath`。 4. 根据插件配置中定义的入口类,框架通过反射实例化对应的`Job`和`Task`对象。 +### 编写测试用例 +1. 你可以在你的插件模块引入datax-example模块,调用`ExampleContainer.start(jobPath)`方法来检测你的代码逻辑是否正确。[datax-example使用](https://github.com/alibaba/DataX/datax-example/doc/README.md) +2. 你可以在datax-example模块引入你的插件模块,编写测试方法调用`ExampleContainer.start(jobPath)`方法来检测你的代码逻辑是否正确。[datax-example使用](https://github.com/alibaba/DataX/datax-example/doc/README.md) + ## 三、Last but not Least