Feature: Profile a specific hook Scenario: Profile all hooks when a specific hook isn't specified Given a WP install When I run `wp profile hook --fields=hook,callback_count` Then STDOUT should be a table containing rows: | hook | callback_count | | plugins_loaded | 3 | | init | 11 | | template_redirect | 7 | And STDERR should be empty Scenario: Profile all callbacks when --all flag is used Given a WP install When I run `wp profile hook --all --fields=callback,cache_hits,cache_misses` Then STDOUT should be a table containing rows: | callback | cache_hits | cache_misses | | sanitize_comment_cookies() | 0 | 0 | | smilies_init() | 2 | 0 | | feed_links() | 8 | 0 | @less-than-php-7 Scenario: Profile an intermediate stage hook Given a WP install When I run `wp profile hook wp_head:before --fields=callback,cache_hits,cache_misses` Then STDOUT should be a table containing rows: | callback | cache_hits | cache_misses | | locate_template() | 0 | 0 | | load_template() | 0 | 0 | And STDOUT should not contain: """ runcommand\Profile\Profiler->wp_tick_profile_begin() """ Scenario: Profile a hook before the template is loaded Given a WP install When I run `wp profile hook plugins_loaded --fields=callback` Then STDOUT should be a table containing rows: | callback | And STDERR should be empty Scenario: Profile a hook without any callbacks Given a WP install When I run `wp profile hook setup_theme --fields=callback` Then STDOUT should be a table containing rows: | callback | | total (0) | And STDERR should be empty Scenario: Profile a hook that has actions with output Given a WP install When I run `wp profile hook wp_head --fields=callback` Then STDOUT should be a table containing rows: | callback | And STDOUT should not contain: """