diff --git a/.travis.yml b/.travis.yml
index f9cdd944120581e626defa5ef27609b8c18f5ceb..6693243a2669dc1607fced21a20302f29296e919 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,19 +9,19 @@ install:
  
 script:
   - msbuild /p:TargetFrameworkVersion="v4.0"
-  - nunit-console -labels TestSimpleLexer/bin/Debug/TestSimpleLexer.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestSimpleLexer/bin/Debug/TestSimpleLexer.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
-  - nunit-console -labels TestLexer/bin/Debug/TestLexer.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestLexer/bin/Debug/TestLexer.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
-  - nunit-console -labels TestGeneratedLexer/bin/Debug/TestGeneratedLexer.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestGeneratedLexer/bin/Debug/TestGeneratedLexer.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
-  - nunit-console -labels TestDescentParser/bin/Debug/TestDescentParser.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestDescentParser/bin/Debug/TestDescentParser.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
-  - nunit-console -labels TestGeneratedParser/bin/Debug/TestGeneratedParser.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestGeneratedParser/bin/Debug/TestGeneratedParser.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
-  - nunit-console -labels TestASTParser/bin/Debug/TestASTParser.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestASTParser/bin/Debug/TestASTParser.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
-  - nunit-console -labels TestVisitors/bin/Debug/TestVisitors.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestVisitors/bin/Debug/TestVisitors.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
-  - nunit-console -labels TestCodeGenerator/bin/Debug/TestCodeGenerator.dll
+  - mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=ON TestCodeGenerator/bin/Debug/TestCodeGenerator.dll
   - mono NunitReportParser/bin/Debug/NunitReportParser.exe ${TRAVIS_BUILD_DIR} ${TRAVIS_REPO_SLUG}
diff --git a/TestASTParser/TestASTParser.csproj b/TestASTParser/TestASTParser.csproj
index 2b3806fd8e9477392eb05d14da11451fcfab45c2..7faa4603bea67adfe34d9ad219b7fd94529acfa1 100644
--- a/TestASTParser/TestASTParser.csproj
+++ b/TestASTParser/TestASTParser.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -40,8 +41,9 @@
     <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
       <HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net35\Newtonsoft.Json.dll</HintPath>
     </Reference>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -66,7 +68,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestASTParser/packages.config b/TestASTParser/packages.config
index 7efc128b27994e8ea66a188132d7b77b5b50ff7e..5d09049159b0c2fd16fc864981c5da3306d7dd47 100644
--- a/TestASTParser/packages.config
+++ b/TestASTParser/packages.config
@@ -1,6 +1,8 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
+  <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/TestCodeGenerator/TestCodeGenerator.csproj b/TestCodeGenerator/TestCodeGenerator.csproj
index c0d7c993b8b4ca717593ade587581b7099d33c74..9d77b96c51b3418461b147168464349cb525af8d 100644
--- a/TestCodeGenerator/TestCodeGenerator.csproj
+++ b/TestCodeGenerator/TestCodeGenerator.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -37,8 +38,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -63,7 +65,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestCodeGenerator/packages.config b/TestCodeGenerator/packages.config
index 7efc128b27994e8ea66a188132d7b77b5b50ff7e..5d09049159b0c2fd16fc864981c5da3306d7dd47 100644
--- a/TestCodeGenerator/packages.config
+++ b/TestCodeGenerator/packages.config
@@ -1,6 +1,8 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
+  <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/TestDescentParser/TestDescentParser.csproj b/TestDescentParser/TestDescentParser.csproj
index d0227466395afaf8a288c4e43986247c0d45d76b..c454871f995adfb9249580a8444111d1e0651447 100644
--- a/TestDescentParser/TestDescentParser.csproj
+++ b/TestDescentParser/TestDescentParser.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -37,8 +38,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -67,7 +69,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestDescentParser/packages.config b/TestDescentParser/packages.config
index 7efc128b27994e8ea66a188132d7b77b5b50ff7e..5d09049159b0c2fd16fc864981c5da3306d7dd47 100644
--- a/TestDescentParser/packages.config
+++ b/TestDescentParser/packages.config
@@ -1,6 +1,8 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
+  <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/TestGeneratedLexer/TestGeneratedLexer.csproj b/TestGeneratedLexer/TestGeneratedLexer.csproj
index 58335e9e9512da9bc02b281a8139c3d74cbf605b..08a757a46ca03a5816f22fe9ae9b3bc490e8dd6e 100644
--- a/TestGeneratedLexer/TestGeneratedLexer.csproj
+++ b/TestGeneratedLexer/TestGeneratedLexer.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -38,8 +39,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -64,7 +66,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestGeneratedLexer/packages.config b/TestGeneratedLexer/packages.config
index 7efc128b27994e8ea66a188132d7b77b5b50ff7e..5d09049159b0c2fd16fc864981c5da3306d7dd47 100644
--- a/TestGeneratedLexer/packages.config
+++ b/TestGeneratedLexer/packages.config
@@ -1,6 +1,8 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
+  <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/TestGeneratedParser/TestGeneratedParser.csproj b/TestGeneratedParser/TestGeneratedParser.csproj
index 5b019cdf182bd603bfb360a59d5289689730856d..ed2f71e6d6bdb549a462415e56fae082c10856b7 100644
--- a/TestGeneratedParser/TestGeneratedParser.csproj
+++ b/TestGeneratedParser/TestGeneratedParser.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -37,8 +38,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -63,7 +65,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestGeneratedParser/packages.config b/TestGeneratedParser/packages.config
index 7efc128b27994e8ea66a188132d7b77b5b50ff7e..5d09049159b0c2fd16fc864981c5da3306d7dd47 100644
--- a/TestGeneratedParser/packages.config
+++ b/TestGeneratedParser/packages.config
@@ -1,6 +1,8 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
+  <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/TestLexer/TestLexer.csproj b/TestLexer/TestLexer.csproj
index 18013930d7a0f4a52fb631b20981e80c088cdd4c..2160b0b49b8d9545393fcf227a19ea4ba2481951 100644
--- a/TestLexer/TestLexer.csproj
+++ b/TestLexer/TestLexer.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -40,8 +41,9 @@
     <Reference Include="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.dll</HintPath>
     </Reference>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -66,7 +68,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestLexer/packages.config b/TestLexer/packages.config
index 7efc128b27994e8ea66a188132d7b77b5b50ff7e..5d09049159b0c2fd16fc864981c5da3306d7dd47 100644
--- a/TestLexer/packages.config
+++ b/TestLexer/packages.config
@@ -1,6 +1,8 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
+  <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/TestSimpleLexer/TestSimpleLexer.csproj b/TestSimpleLexer/TestSimpleLexer.csproj
index a2d73170dd45916846ea658ac867167ce0920ade..44905b20bd0bb056c2d62128258c957cfe7c6252 100644
--- a/TestSimpleLexer/TestSimpleLexer.csproj
+++ b/TestSimpleLexer/TestSimpleLexer.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -40,8 +41,9 @@
     <Reference Include="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
       <HintPath>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.dll</HintPath>
     </Reference>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -66,7 +68,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestSimpleLexer/packages.config b/TestSimpleLexer/packages.config
index 3e2b9ca952fd09a1072aa1a059aa699ae9aaf756..768fd07e1b82eebe6884fd2f01a08db7789248d3 100644
--- a/TestSimpleLexer/packages.config
+++ b/TestSimpleLexer/packages.config
@@ -1,11 +1,9 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
   <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
-  <package id="NUnit.Extension.NUnitV2Driver" version="3.7.0" targetFramework="net40" />
-  <package id="NUnit.Extension.NUnitV2ResultWriter" version="3.6.0" targetFramework="net40" />
   <package id="NUnit.Extension.TeamCityEventListener" version="1.0.6" targetFramework="net40" />
   <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/TestVisitors/TestVisitors.csproj b/TestVisitors/TestVisitors.csproj
index 7cd196f80fad6211d85f8fc0e049765ef1be907c..0adb807531fb368c139bc2af2e6cee782c5bf572 100644
--- a/TestVisitors/TestVisitors.csproj
+++ b/TestVisitors/TestVisitors.csproj
@@ -1,6 +1,7 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props" Condition="Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" />
+  <Import Project="..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props" Condition="Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" />
+  <Import Project="..\packages\NUnit.3.12.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" />
   <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -37,8 +38,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
-      <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+    <Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb">
+      <HintPath>..\packages\NUnit.3.12.0\lib\net40\nunit.framework.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -63,7 +65,8 @@
     <PropertyGroup>
       <ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их.  Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnitTestAdapter.2.2.0\build\NUnitTestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
+    <Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
   </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
          Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/TestVisitors/packages.config b/TestVisitors/packages.config
index 7efc128b27994e8ea66a188132d7b77b5b50ff7e..5d09049159b0c2fd16fc864981c5da3306d7dd47 100644
--- a/TestVisitors/packages.config
+++ b/TestVisitors/packages.config
@@ -1,6 +1,8 @@
 п»ї<?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="NUnit" version="2.6.4" targetFramework="net40" />
+  <package id="NUnit" version="3.12.0" targetFramework="net40" />
   <package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net40" />
-  <package id="NUnitTestAdapter" version="2.2.0" targetFramework="net40" />
+  <package id="NUnit.Extension.NUnitProjectLoader" version="3.6.0" targetFramework="net40" />
+  <package id="NUnit.Extension.VSProjectLoader" version="3.8.0" targetFramework="net40" />
+  <package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net40" />
 </packages>
\ No newline at end of file
diff --git a/run_tests.sh b/run_tests.sh
index 5f65f9859c0de073ce5542119b4d46f50e9b2526..18edb456b46c8e4948b8795521d04a97d749a4b8 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -1,9 +1,9 @@
 #!/bin/bash
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestLexer/bin/Debug/TestLexer.dll
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestSimpleLexer/bin/Debug/TestSimpleLexer.dll
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestGeneratedLexer/bin/Debug/TestGeneratedLexer.dll
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestDescentParser/bin/Debug/TestDescentParser.dll
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestGeneratedParser/bin/Debug/TestGeneratedParser.dll
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestASTParser/bin/Debug/TestASTParser.dll
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestVisitors/bin/Debug/TestVisitors.dll
-mono NUnit.3.10.1/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe --labels=All TestCodeGenerator/bin/Debug/TestCodeGenerator.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestLexer/bin/Debug/TestLexer.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestSimpleLexer/bin/Debug/TestSimpleLexer.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestGeneratedLexer/bin/Debug/TestGeneratedLexer.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestDescentParser/bin/Debug/TestDescentParser.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestGeneratedParser/bin/Debug/TestGeneratedParser.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestASTParser/bin/Debug/TestASTParser.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestVisitors/bin/Debug/TestVisitors.dll
+mono packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe --labels=All TestCodeGenerator/bin/Debug/TestCodeGenerator.dll