public void generateAndRunVBObjectTests()
        {
            int           i = 0;
            DirectoryInfo d = new DirectoryInfo(Directory.GetCurrentDirectory());

            while (true)
            {
                i++;
                if (i >= 20)
                {
                    throw new ApplicationException("could not get a dir with name GeneratorTests");
                }
                d = d.Parent;
                if (d.Name == "GeneratorTests")
                {
                    break;
                }
            }


            string path = d.FullName + "\\VbObjectTestsTmp.cs";

            if (File.Exists(path))
            {
                File.Delete(path);
            }


            File.Copy(d.FullName + "\\CSharpObjectTests.cs", path);
            string readText = File.ReadAllText(path);

            readText = readText.Replace("using CsModelObjects;", "using ModelLibVBGenCode.VbBusObjects;");
            readText = readText.Replace("using CsModelMappers;", "using ModelLibVBGenCode.VbBusObjects.DBMappers;");
            //readText = readText.Replace("DateTime hireDate=new", "dim hireDate as DateTime=new");

            readText = readText.Replace("namespace GeneratorTests {", "namespace GeneratorTests.VB {");
            readText = readText.Replace("public class CSharpObjectTests {", "public class VBObjectTests {");
            readText = readText.Replace("public void createCsRecords()", "public void createVbRecords()");
            readText = readText.Replace("[TestClass]", "[NUnit.Framework.TestFixture]");
            readText = readText.Replace("[TestMethod]", "[NUnit.Framework.Test]");
            readText = readText.Replace("using Microsoft.VisualStudio.TestTools.UnitTesting;", "using NUnit.Framework;");
            readText = readText.Replace("Assert.", "NUnit.Framework.Assert.");
            readText = readText.Replace("public static void MyClassInitialize(TestContext testContext)", "public static void MyClassInitialize()");
            readText = readText.Replace("[ClassInitialize()]", "[NUnit.Framework.SetUp]");
            readText = readText.Replace("[ClassCleanup()]", "[NUnit.Framework.TearDown]");
            readText = readText.Replace("//NUnit.Framework.NUnit.Framework.Assert.IsTrue(false)", "NUnit.Framework.Assert.IsTrue(false);");
            readText = readText.Replace("//DBUtils.Current().ConnString=",
                                        "org.model.lib.db.DBUtils.Current().ConnString=\"" + DBUtils.Current().ConnString.Replace("\\", "\\\\") + "\";");

            readText = readText.Replace("EnumProjectType.EXTERNAL", "ModelLibVBGenCode.EnumProjectType.EXTERNAL");
            readText = readText.Replace("void testCSharp", "void testVBNet");

            File.WriteAllText(path, readText);

            CSharpCodeProvider provider = new CSharpCodeProvider();
            CompilerParameters cp       = new CompilerParameters();

            // this line is here otherwise ModelLibVBGenCode is not returned
            // in call to this.GetType().Assembly.GetReferencedAssemblies
            ModelLibVBGenCode.VbBusObjects.Employee e = null;
            NUnit.Framework.Guard x = null;             // note: DO NOT REMOVE!

            var assemblies        = this.GetType().Assembly.GetReferencedAssemblies().ToList();
            var assemblyLocations =
                assemblies.Select(a =>
                                  Assembly.ReflectionOnlyLoad(a.FullName).Location);

            var lstAssemblyLocations = assemblyLocations.Where(a => !a.Contains("Microsoft.VisualStudio.QualityTools.UnitTestFramework")).ToList();

            //Assembly.ReflectionOnlyLoad("")
            cp.ReferencedAssemblies.AddRange(lstAssemblyLocations.ToArray());

            cp.GenerateInMemory   = false;          // True - memory generation, false - external file generation
            cp.GenerateExecutable = false;          // True - exe file generation, false - dll file generation
            CompilerResults results = provider.CompileAssemblyFromSource(cp, readText);

            Assert.AreEqual(0, results.Errors.Count,
                            "There should be no compilation errors, first error was:" +
                            (results.Errors.Count > 0 ? results.Errors[0].ErrorText : ""));

            CoreExtensions.Host.InitializeService();
            TestPackage      package          = new TestPackage(results.CompiledAssembly.Location);
            RemoteTestRunner remoteTestRunner = new RemoteTestRunner();

            remoteTestRunner.Load(package);
            TestResult result = remoteTestRunner.Run(new NullListener(),
                                                     TestFilter.Empty, false, LoggingThreshold.All);

            Assert.IsTrue(result.HasResults, " must have test results ");
            Assert.IsTrue(result.IsSuccess, "dynamic vb tests must return success ");
        }