Test::YAML::Valid - Test for valid YAML


Version 0.04


This module lets you easily test the validity of YAML:

    use Test::More tests => 3;
    use Test::YAML::Valid;

    yaml_string_ok(YAML::Dump({foo => 'bar'}), 'YAML generates good YAML?');
    yaml_string_ok('this is not YAML, is it?', 'This one will fail');
    yaml_file_ok('/path/to/some/YAML', '/path/to/some/YAML is YAML');
    yaml_files_ok('/path/to/YAML/files/*', 'all YAML files are valid');

You can also test with YAML::Syck instead of YAML by passing -Syck in the import list:

    use Test::YAML::Valid qw(-Syck);
    yaml_string_ok(...); # uses YAML::Syck::Load instead of YAML::Load

It's up to you to make sure you have YAML::Syck if you specify the -Syck option, since it's an optional prerequisite to this module. If it's requested but not found, a warning will be issued and YAML will be used instead.

As of version 0.04, you can use any module you want in the same way; -Tiny for YAML::Tiny and -XS for YAML::XS.


  • yaml_string_ok

  • yaml_file_ok

  • yaml_files_ok


yaml_string_ok($yaml, [$message])

Test will pass if $yaml contains valid YAML (according to and fail otherwise. Returns the result of loading the YAML.

yaml_file_ok($filename, [$message])

Test will pass if $filename is a valid YAML file (according to and fail otherwise. Returns the result of loading the YAML.

yaml_files_ok($file_glob_string, [$message])

Test will pass if all files matching the glob $file_glob_string contain valid YAML. If a file is not valid, the test will fail and no further files will be examined.

Returns a list of all loaded YAML;


Jonathan Rockway, <jrockway at>


Please report any bugs or feature requests to bug-test-yaml-valid at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc Test::YAML::Valid

You can also look for information at:


Stevan Little <> contributed yaml_files_ok and some more tests.


Copyright 2007 Jonathan Rockway, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.