插件功能测试
edit插件功能测试
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。