MSTest: No tests are run because no tests are loaded or the selected tests are disabled

前端 未结 18 1732
不知归路
不知归路 2020-12-24 11:55

I have a c# solution with the following structure:

mySolution
  myProject
  myProject.MSTests
    References
      Microsoft.VisualStudio.QualityTools.UnitTe         


        
18条回答
  •  余生分开走
    2020-12-24 12:09

    I've just manually done this:

    Created a new C# class library project with the following code:

    namespace SO_Answer
    {
        public class Class1
        {
            public void Test()
            {
                var k = "Hello";
            }
        }
    }
    

    Saved the project and then went to 'File->Add->New Project' and chose 'Test Project'. After VS created the unit test project, I added a reference to the class library project I created earlier.

    In my test I have this code:

    namespace Unit_Test
    {
        /// 
        /// Summary description for UnitTest1
        /// 
        [TestClass]
        public class UnitTest1
        {
            /// 
            ///Gets or sets the test context which provides
            ///information about and functionality for the current test run.
            ///
            public TestContext TestContext { get; set; }
    
            #region Additional test attributes
    
            // You can use the following additional attributes as you write your tests:
            // Use ClassInitialize to run code before running the first test in the class
            // [ClassInitialize()]
            // public static void MyClassInitialize(TestContext testContext) { }
            // Use ClassCleanup to run code after all tests in a class have run
            // [ClassCleanup()]
            // public static void MyClassCleanup() { }
            // Use TestInitialize to run code before running each test 
            // [TestInitialize()]
            // public void MyTestInitialize() { }
            // Use TestCleanup to run code after each test has run
            // [TestCleanup()]
            // public void MyTestCleanup() { }
            #endregion
    
            /// 
            /// The test method 1.
            /// 
            [TestMethod]
            public void TestMethod1()
            {
                var f = new Class1();
    
            }
        }
    }
    

    The only code I added was the a using statement and the var f = new Class1(); statement. Looking at the MSTest runner, I can see TestMethod1 appear.

    I can't think of a reason why your unit tests are not being picked up. The only time I've had this is because I was using the MSTest runner to try and view NUnit tests by mistake. Try starting from scratch.

提交回复
热议问题