插件功能测试
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
插件功能测试
edit插件在 Kibana repo 外部运行并使用 FunctionalTestRunner
。在继续之前,请确认您的 Kibana 开发环境配置正确。
编写您自己的配置
edit每个工程或插件应该有自己的 FunctionalTestRunner
配置文件。就像 Kibana,配置文件会定义所有要加载的测试文件、服务提供者和 PageObjects,还有某些服务的配置选项。
通过复制下面的例子到 test/functional/config.js
文件开始测试:
import { resolve } from 'path'; import { MyServiceProvider } from './services/my_service'; import { MyAppPageProvider } from './services/my_app_page; // 允许重写默认的 kibana 目录 // 使用 KIBANA_DIR 环境变量 const KIBANA_CONFIG_PATH = resolve(process.env.KIBANA_DIR || '../kibana', 'test/functional/config.js'); // 配置文件的默认导出必须是一个配置提供程序(config provider) // 它返回带有项目配置值的对象 export default async function ({ readConfigFile }) { // 读取 Kibana 配置文件,这样我们可以使用它的一些服务和 PageObjects const kibanaConfig = await readConfigFile(KIBANA_CONFIG_PATH); return { // 列出包含您插件测试用例的文件路径 testFiles: [ resolve(__dirname, './my_test_file.js'), ], // 定义在您的测试中可用的服务和提供程序, // 否则,只有内置的服务可用 services: { ...kibanaConfig.get('services'), myService: MyServiceProvider, }, // 就像服务那样,PageObjects 定义为提供者的名称映射 // 在 Kibana 中合并或选择指定一个 pageObjects: { management: kibanaConfig.get('pageObjects.management'), myApp: MyAppPageProvider, }, // apps 部分定义 PageObjects.common.navigateTo(appKey) 使用的 urls // 为您的插件合并 Kibana 配置中定义的 url,以便使用帮助 apps: { ...kibanaConfig.get('apps'), myApp: { pathname: '/app/my_app', } }, // 选择 esArchiver 从哪里加载 esArchiver: { directory: resolve(__dirname, './es_archives'), }, // 选择 screenshots 保存到哪里 screenshots: { directory: resolve(__dirname, './tmp/screenshots'), } // 更多设置,例如 timeouts、 mochaOpts 等定义在配置模式。参见 {blob}src/functional_test_runner/lib/config/schema.js[src/functional_test_runner/lib/config/schema.js] }; }
现在可以在 repo 的根目录运行您插件工程的 FunctionalTestRunner
脚本。
node ../kibana/scripts/functional_test_runner
使用 esArchiver
edit我们正在为这部分准备文档,但目前最好的资料是原始的 pull request。
Was this helpful?
Thank you for your feedback.