diff --git a/lib/Test/KorAP/XML/TEI.pm b/lib/Test/KorAP/XML/TEI.pm
index 7e82b9c..fa94273 100644
--- a/lib/Test/KorAP/XML/TEI.pm
+++ b/lib/Test/KorAP/XML/TEI.pm
@@ -66,7 +66,7 @@
 #   of the test suite.
 sub test_tei2korapxml {
   my ($file, $script, $pattern);
-  my ($env, $param) = ('', '');
+  my ($env, $param, $fh) = ('', '');
 
   if (@_ == 1) {
     $file = shift;
@@ -79,6 +79,17 @@
     $param   = $hash{param}  if $hash{param};
     $env     = $hash{env}    if $hash{env};
     $pattern = $hash{tmp}    if $hash{tmp};
+
+    # Handle template instead of hash
+    if ($hash{template} && !$file) {
+      my $pattern = delete $hash{template}->{pattern};
+      my $tmpl = i5_template(%{$hash{template}});
+
+      # Write template to file
+      ($fh, $file) = korap_tempfile($pattern);
+      print $fh $tmpl;
+      close($fh);
+    }
   };
 
   # Assume script in test environment
@@ -110,7 +121,7 @@
 
   # Read from written file
   my $stdout = '';
-  if (open(my $fh, '<', $fn)) {
+  if (open($fh, '<', $fn)) {
     binmode($fh);
     $stdout .= <$fh> while !eof($fh);
     close($fh);
diff --git a/t/test.t b/t/test.t
index de0c65e..a549e1e 100644
--- a/t/test.t
+++ b/t/test.t
@@ -8,7 +8,8 @@
   unshift @INC, "$FindBin::Bin/../lib";
 };
 
-use_ok('Test::KorAP::XML::TEI','korap_tempfile', 'i5_template');
+use_ok('Test::KorAP::XML::TEI','korap_tempfile', 'i5_template', 'test_tei2korapxml');
+
 
 subtest 'korap_tempfile' => sub {
   my ($fh, $filename) = korap_tempfile('test');
@@ -26,6 +27,7 @@
   like($filename, qr!KorAP-XML-TEI_.+?\.tmp$!, 'Filename pattern');
 };
 
+
 subtest 'i5_template' => sub {
   my $tpl = i5_template();
   my $t = Test::XML::Loy->new($tpl);
@@ -50,4 +52,24 @@
     ;
 };
 
+
+subtest 'test_tei2korapxml_i5_template' => sub {
+  test_tei2korapxml(
+    template => {
+      text => 'Das ist ein gutes Beispiel',
+      korpusSigle => 'a',
+      dokumentSigle => 'a/b',
+      textSigle => 'a/b.1'
+    },
+    param => '-ti'
+  )
+    ->stderr_like(qr!tei2korapxml: .*? text_id=a_b\.1!)
+    ->file_exists('a/b/1/header.xml')
+    ->file_exists('a/b/header.xml')
+    ->file_exists('a/header.xml')
+    ->unzip_xml('a/b/1/data.xml')
+    ->attr_is('raw_text', 'docid', 'a_b.1')
+    ->text_is('text', 'Das ist ein gutes Beispiel');
+};
+
 done_testing;
