diff --git a/alib2cli/test-src/cli/CliTest.cpp b/alib2cli/test-src/cli/CliTest.cpp
index 5d593c4c1bd289fb5f0c7dcaa89314e6b2ba0298..4a332e96a59a109bd89dbb4c2a07bb9dbcde94a4 100644
--- a/alib2cli/test-src/cli/CliTest.cpp
+++ b/alib2cli/test-src/cli/CliTest.cpp
@@ -9,6 +9,11 @@
 #include <registry/AlgorithmRegistry.hpp>
 #include <registration/AlgoRegistration.hpp>
 
+void testLine ( std::string line, cli::Environment & environment ) {
+	cli::Parser parser { cli::Lexer ( line ) };
+	parser.parse ( )->run ( environment );
+}
+
 class Foo {
 	int m_base;
 	public:
@@ -101,29 +106,21 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 
 		cli::Environment environment;
 		environment.setBinding ( "1", "1" );
-		cli::Parser parser ( cli::Lexer ( "execute One | Add <( Add (int) #1 <(One) ) - | Neg - > local/xxx.xml" ) );
-		parser.parse ( )->run ( environment );
-
-		environment.setBinding ( "2", "local/xxx.xml" );
-		parser = cli::Parser ( cli::Lexer ( "execute One | Add <( Add (int) <#2 <(One) ) - | Neg (double) - | Divide (double) - <(One | (double) Add <(One) - )" ) );
-		parser.parse ( )->run ( environment );
-
-		parser = cli::Parser ( cli::Lexer ( "execute <:int #2" ) );
-		parser.parse ( )->run ( environment );
 
-		parser = cli::Parser ( cli::Lexer ( "execute One > $res" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute One | Add <( Add (int) #1 <(One) ) - | Neg - > local/xxx.xml", environment );
 
-		parser = cli::Parser ( cli::Lexer ( "execute $res" ) );
-		parser.parse ( )->run ( environment );
+		environment.setBinding ( "2", "local/xxx.xml" );
 
-		parser = cli::Parser ( cli::Lexer ( "execute Divide <(One) <(One)" ) );
-		CHECK_NOTHROW ( parser.parse ( )->run ( environment ) );
+		testLine ( "execute One | Add <( Add (int) <#2 <(One) ) - | Neg (double) - | Divide (double) - <(One | (double) Add <(One) - )", environment );
+		testLine ( "execute <:int #2", environment );
+		testLine ( "execute One > $res", environment );
+		testLine ( "execute $res", environment );
+		CHECK_NOTHROW ( testLine ( "execute Divide <(One) <(One)", environment ) );
 
 		abstraction::AlgorithmRegistry::unregisterAlgorithm < Divide, double, double > ( abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT );
 		abstraction::AlgorithmRegistry::unregisterAlgorithm < Divide, int, int > ( abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT );
 
-		CHECK_THROWS_AS ( parser.parse ( )->run ( environment ), exception::CommonException );
+		CHECK_THROWS ( testLine ( "execute Divide <(One) <(One)", environment ) );
 	}
 
 	class Source {
@@ -145,8 +142,7 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		abstraction::AlgorithmRegistry::registerAlgorithm < Sink > ( Sink::sink, abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT, std::array < std::string, 1 > ( ) );
 
 		cli::Environment environment;
-		cli::Parser parser ( cli::Lexer ( "execute Source | Sink ^ - >" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute Source | Sink ^ - >", environment );
 	}
 
 	static std::unique_ptr < int > source;
@@ -174,8 +170,7 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		{
 			source = std::make_unique < int > ( 1 );
 			cli::Environment environment;
-			cli::Parser parser ( cli::Lexer ( "execute RvalueReferenceProvider | RvalueReferenceAcceptor - >" ) );
-			CHECK_NOTHROW ( parser.parse ( )->run ( environment ) );
+			testLine ( "execute RvalueReferenceProvider | RvalueReferenceAcceptor - >", environment );
 		}
 
 		CHECK ( * target == 1 );
@@ -184,10 +179,8 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		{
 			source = std::make_unique < int > ( 1 );
 			cli::Environment environment;
-			cli::Parser parser ( cli::Lexer ( "execute RvalueReferenceProvider > $tmp" ) );
-			CHECK_NOTHROW ( parser.parse ( )->run ( environment ) );
-			parser = cli::Parser ( cli::Lexer ( "execute $tmp | RvalueReferenceAcceptor ^ - >" ) );
-			CHECK_NOTHROW ( parser.parse ( )->run ( environment ) );
+			CHECK_NOTHROW ( testLine ( "execute RvalueReferenceProvider > $tmp", environment ) );
+			CHECK_NOTHROW ( testLine ( "execute $tmp | RvalueReferenceAcceptor ^ - >", environment ) );
 		}
 
 		CHECK ( * target == 1 );
@@ -196,10 +189,8 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		{
 			source = std::make_unique < int > ( 1 );
 			cli::Environment environment;
-			cli::Parser parser ( cli::Lexer ( "execute RvalueReferenceProvider > $tmp" ) );
-			CHECK_NOTHROW ( parser.parse ( )->run ( environment ) );
-			parser = cli::Parser ( cli::Lexer ( "execute $tmp | RvalueReferenceAcceptor - >" ) );
-			CHECK_THROWS ( parser.parse ( )->run ( environment ) );
+			CHECK_NOTHROW ( testLine ( "execute RvalueReferenceProvider > $tmp", environment ) );
+			CHECK_THROWS ( testLine ( "execute $tmp | RvalueReferenceAcceptor - >", environment ) );
 		}
 
 	}
@@ -224,8 +215,7 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		abstraction::AlgorithmRegistry::registerAlgorithm < ConstReferenceAcceptor > ( ConstReferenceAcceptor::bar, abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT, std::array < std::string, 1 > ( ) );
 
 		cli::Environment environment;
-		cli::Parser parser ( cli::Lexer ( "execute ConstReferenceProvider | ConstReferenceAcceptor - >" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute ConstReferenceProvider | ConstReferenceAcceptor - >", environment );
 	}
 
 	class ReferenceProvider {
@@ -247,8 +237,7 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		abstraction::AlgorithmRegistry::registerAlgorithm < ReferenceAcceptor > ( ReferenceAcceptor::bar, abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT, std::array < std::string, 1 > ( ) );
 
 		cli::Environment environment;
-		cli::Parser parser ( cli::Lexer ( "execute ReferenceProvider | ReferenceAcceptor - >" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute ReferenceProvider | ReferenceAcceptor - >", environment );
 	}
 
 	class ConstRvalueReferenceProvider {
@@ -271,8 +260,7 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		abstraction::AlgorithmRegistry::registerAlgorithm < ConstRvalueReferenceAcceptor > ( ConstRvalueReferenceAcceptor::bar, abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT, std::array < std::string, 1 > ( ) );
 
 		cli::Environment environment;
-		cli::Parser parser ( cli::Lexer ( "execute ConstRvalueReferenceProvider | ConstRvalueReferenceAcceptor ^ - >" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute ConstRvalueReferenceProvider | ConstRvalueReferenceAcceptor ^ - >", environment );
 	}
 
 	class Print {
@@ -289,22 +277,17 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 
 		cli::Environment environment;
 
-		cli::Parser parser ( cli::Lexer ( "execute { :int 1 2 3 } > $set" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute { :int 1 2 3 } > $set", environment );
 		CHECK_THAT ( environment.getVariable ( "set" )->getType ( ), Catch::Matchers::StartsWith ( "ext::set<int," ) );
 
-		parser = cli::Parser ( cli::Lexer ( "execute $set | Print -" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute $set | Print -", environment );
 
-		parser = cli::Parser ( cli::Lexer ( "execute $set >lo\\cal/yyy.xml" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute $set >lo\\cal/yyy.xml", environment );
 
-		parser = cli::Parser ( cli::Lexer ( "execute < :set @int \"local/yyy.xml\" > $set2" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute < :set @int \"local/yyy.xml\" > $set2", environment );
 		CHECK_THAT ( environment.getVariable ( "set2" )->getType ( ), Catch::Matchers::StartsWith ( "ext::set<int," ) );
 
-		parser = cli::Parser ( cli::Lexer ( "execute $set2 | Print -" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute $set2 | Print -", environment );
 	}
 
 	SECTION ( "Test Member" ) {
@@ -312,10 +295,8 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 		abstraction::AlgorithmRegistry::registerMethod < Foo > ( & Foo::base, "base", std::array < std::string, 0 > ( ) );
 
 		cli::Environment environment;
-		cli::Parser parser ( cli::Lexer ( "execute Foo 3 | Foo::base -" ) );
-		parser.parse ( )->run ( environment );
-		parser = cli::Parser ( cli::Lexer ( "execute Foo 3 | Foo::bar - 2" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute Foo 3 | Foo::base -", environment );
+		testLine ( "execute Foo 3 | Foo::bar - 2", environment );
 	}
 
 	SECTION ( "Test XML IO" ) {
@@ -323,8 +304,7 @@ TEST_CASE ( "Cli", "[unit][cli]" ) {
 
 		cli::Environment environment;
 		environment.setVariable ( "in", in );
-		cli::Parser parser ( cli::Lexer ( "execute sax::SaxParseInterface $in | xml::Parse ^ - | Add <(One) - | xml::Compose - | sax::SaxComposeInterface - > $out" ) );
-		parser.parse ( )->run ( environment );
+		testLine ( "execute sax::SaxParseInterface $in | xml::Parse ^ - | Add <(One) - | xml::Compose - | sax::SaxComposeInterface - > $out", environment );
 		std::string out = environment.getVariable < std::string > ( "out" );
 
 		std::string ref = "<?xml version=\"1.0\"?>\n<Integer>2</Integer>\n";