コード例 #1
0
		/// <summary>
		/// Build a suite based on a TestPackage
		/// </summary>
		/// <param name="package">The TestPackage</param>
		/// <returns>A TestSuite</returns>
		public TestSuite Build( TestPackage package )
		{
			bool autoNamespaceSuites = package.GetSetting( "AutoNamespaceSuites", true );
			bool mergeAssemblies = package.GetSetting( "MergeAssemblies", false );
            TestExecutionContext.CurrentContext.TestCaseTimeout = package.GetSetting("DefaultTimeout", 0);

			if ( package.IsSingleAssembly )
				return BuildSingleAssembly( package );
			string targetAssemblyName = null;
			if( package.TestName != null && package.Assemblies.Contains( package.TestName ) )
			{
				targetAssemblyName = package.TestName;
				package.TestName = null;
			}
			
			TestSuite rootSuite = new ProjectRootSuite( package.FullName );
			NamespaceTreeBuilder namespaceTree = 
				new NamespaceTreeBuilder( rootSuite );

			builders.Clear();
			foreach(string assemblyName in package.Assemblies)
			{
				if ( targetAssemblyName == null || targetAssemblyName == assemblyName )
				{
					TestAssemblyBuilder builder = new TestAssemblyBuilder();
					builders.Add( builder );

					Test testAssembly =  builder.Build( assemblyName, package.TestName, autoNamespaceSuites && !mergeAssemblies );

					if ( testAssembly != null )
					{
						if (!mergeAssemblies)
						{
							rootSuite.Add(testAssembly);
						}
						else if (autoNamespaceSuites)
						{
							namespaceTree.Add(testAssembly.Tests);
							rootSuite = namespaceTree.RootSuite;
						}
						else
						{
							foreach (Test test in testAssembly.Tests)
								rootSuite.Add(test);
						}
					}
				}
			}

            ProviderCache.Clear();
            
            if (rootSuite.Tests.Count == 0)
				return null;

			return rootSuite;
		}
コード例 #2
0
        public void CanLoadAssemblyAtRelativeDirectoryLocation()
        {
            DirectoryInfo current = new DirectoryInfo( Environment.CurrentDirectory );
            string dir = current.Name;
            string parentDir = current.Parent.FullName;

            try
            {
                Environment.CurrentDirectory = parentDir;
                TestAssemblyBuilder builder = new TestAssemblyBuilder();
                Assert.IsNotNull( builder.Build( dir + Path.DirectorySeparatorChar + "mock-assembly.dll", false ) );
            }
            finally
            {
                Environment.CurrentDirectory = current.FullName;
            }
        }
コード例 #3
0
ファイル: TestSuiteBuilder.cs プロジェクト: fotisp/conqat
        /// <summary>
        /// Build a suite based on a TestPackage
        /// </summary>
        /// <param name="package">The TestPackage</param>
        /// <returns>A TestSuite</returns>
        public TestSuite Build( TestPackage package )
        {
            bool autoNamespaceSuites = package.GetSetting( "AutoNamespaceSuites", true );
            bool mergeAssemblies = package.GetSetting( "MergeAssemblies", false );

            if ( package.IsSingleAssembly )
                return BuildSingleAssembly( package );

            TestSuite rootSuite = new TestSuite( package.FullName );
            NamespaceTreeBuilder namespaceTree =
                new NamespaceTreeBuilder( rootSuite );

            builders.Clear();
            foreach(string assemblyName in package.Assemblies)
            {
                TestAssemblyBuilder builder = new TestAssemblyBuilder();
                builders.Add( builder );

                Test testAssembly =  builder.Build( assemblyName, package.TestName, autoNamespaceSuites && !mergeAssemblies );

                if ( testAssembly != null )
                {
                    if (!mergeAssemblies)
                    {
                        rootSuite.Add(testAssembly);
                    }
                    else if (autoNamespaceSuites)
                    {
                        namespaceTree.Add(testAssembly.Tests);
                        rootSuite = namespaceTree.RootSuite;
                    }
                    else
                    {
                        foreach (Test test in testAssembly.Tests)
                            rootSuite.Add(test);
                    }
                }
            }

            if ( rootSuite.Tests.Count == 0 )
                return null;

            return rootSuite;
        }
コード例 #4
0
ファイル: TestSuiteBuilder.cs プロジェクト: nobled/mono
		private TestSuite BuildSingleAssembly( TestPackage package )
		{
			TestAssemblyBuilder builder = new TestAssemblyBuilder();
			builders.Clear();
			builders.Add( builder );

			return (TestSuite)builder.Build( 
				package.FullName, 
				package.TestName, package.GetSetting( "AutoNamespaceSuites", true ) );
		}
コード例 #5
0
 public void CanLoadAssemblyInCurrentDirectory()
 {
     TestAssemblyBuilder builder = new TestAssemblyBuilder();
     Assert.IsNotNull( builder.Build( "mock-assembly.dll", false ) );
 }
コード例 #6
0
ファイル: TestSuiteTest.cs プロジェクト: taoxiease/asegrp
 public void ExcludingCategoryDoesNotRunExplicitTestFixtures()
 {
     TestFilter filter = new NotFilter( new CategoryFilter( "MockCategory" ) );
     TestAssemblyBuilder builder = new TestAssemblyBuilder();
     TestSuite suite = builder.Build( "mock-assembly.dll", true );
     TestResult result = suite.Run( NullListener.NULL, filter );
     ResultSummarizer summarizer = new ResultSummarizer( result );
     Assert.AreEqual( MockAssembly.Tests - MockAssembly.NotRun - 2, summarizer.ResultCount );
 }
コード例 #7
0
ファイル: TestSuiteTest.cs プロジェクト: fotisp/conqat
 public void ExcludingCategoryDoesNotRunExplicitTestFixtures()
 {
     TestFilter filter = new NotFilter( new CategoryFilter( "MockCategory" ) );
     TestAssemblyBuilder builder = new TestAssemblyBuilder();
     TestSuite suite = builder.Build( "mock-assembly.dll", true );
     TestResult result = suite.Run( NullListener.NULL, filter );
     ResultSummarizer summarizer = new ResultSummarizer( result );
     Assert.AreEqual( MockAssembly.Tests - MockAssembly.NotRun - 2, summarizer.ResultCount );
     Console.WriteLine( "{0} ignored, {1} explicit, {2} not run",
         MockAssembly.Ignored, MockAssembly.Explicit, MockAssembly.NotRun );
     Console.WriteLine( "{0} tests were run out of {1}",
         MockAssembly.Tests - MockAssembly.NotRun - 2, MockAssembly.Tests );
 }
コード例 #8
0
		public void ExcludingCategoryDoesNotRunExplicitTestFixtures()
		{
			NotFilter filter = new NotFilter( new CategoryFilter( "MockCategory" ) );
            filter.TopLevel = true;
			TestAssemblyBuilder builder = new TestAssemblyBuilder();
			TestSuite suite = builder.Build( MockAssembly.AssemblyPath, true );
			TestResult result = suite.Run( NullListener.NULL, filter );
			ResultSummarizer summarizer = new ResultSummarizer( result );
			Assert.AreEqual( MockAssembly.TestsRun - 2, summarizer.TestsRun );
		}