How to Write Tests for Plugin
Basics of Plugin Testing
require "test-unit"
require "fluent/test"
require "fluent/test/driver/output"
require "fluent/test/helpers"
Test::Unit::TestCase.include(Fluent::Test::Helpers)
Test::Unit::TestCase.extend(Fluent::Test::Helpers).
├── Gemfile
├── LICENSE
├── README.md
├── Rakefile
├── fluent-plugin-<your_fluentd_plugin_name>.gemspec
├── lib
│ └── fluent
│ └── plugin
│ └── <plugin_type>_<your_fluentd_plugin_name>.rb
└── test
├── helper.rb
└── plugin
└── test_<plugin_type>_<your_fluentd_plugin_name>.rbPlugin Test Driver Overview
Testing Utility Methods
Test Driver Base API
initialize(klass, opts: {}, &block)
initialize(klass, opts: {}, &block)configure(conf, syntax: :v1)
configure(conf, syntax: :v1)end_if(&block)
end_if(&block)break_if(&block)
break_if(&block)broken?
broken?run(timeout: nil, start: true, shutdown: true, &block)
run(timeout: nil, start: true, shutdown: true, &block)stop?
stop?logs
logsinstance
instanceTest Driver Base Owner API
run(expect_emits: nil, expect_records: nil, timeout: nil, start: true, shutdown: true, &block)
run(expect_emits: nil, expect_records: nil, timeout: nil, start: true, shutdown: true, &block)events(tag: nil)
events(tag: nil)event_streams(tag: nil)
event_streams(tag: nil)emit_count
emit_countrecord_count
record_counterror_events(tag: nil)
error_events(tag: nil)Test Driver Base owned API
configure(conf, syntax: :v1)
configure(conf, syntax: :v1)Test Driver Event Feeder API
run(default_tag: nil, **kwargs, &block)
run(default_tag: nil, **kwargs, &block)feed(tag, time, record)
feed(tag, time, record)feed(tag, array_event_stream)
feed(tag, array_event_stream)feed(tag, es)
feed(tag, es)feed(record)
feed(record)feed(time, record)
feed(time, record)feed(array_event_stream)
feed(array_event_stream)feed(es)
feed(es)Test Driver Filter API
filtered_records
filtered_recordsTest Driver Output API
run(flush: true, wait_flush_completion: true, force_flush_retry: false, **kwargs, &block)
run(flush: true, wait_flush_completion: true, force_flush_retry: false, **kwargs, &block)formatted
formattedflush
flushTest Helpers
assert_equal_event_time(expected, actual, message = nil)
assert_equal_event_time(expected, actual, message = nil)config_element(name = 'test', argument = '', params = {}, elements = [])
config_element(name = 'test', argument = '', params = {}, elements = [])event_time(str = nil, format: nil)
event_time(str = nil, format: nil)with_timezone(tz, &block)
with_timezone(tz, &block)with_worker_config(root_dir: nil, workers: nil, worker_id: nil, &block)
with_worker_config(root_dir: nil, workers: nil, worker_id: nil, &block)time2str(time, localtime: false, format: nil)
time2str(time, localtime: false, format: nil)msgpack(type)
msgpack(type)capture_stdout(&block)
capture_stdout(&block)Testing Input Plugins
Testing Filter Plugins
Testing Output Plugins
Testing Parser Plugins
Testing Formatter Plugins
Tests for Logs
Last updated
Was this helpful?