What command line arguments does Visual Studio use

2019-03-28 12:24发布

问题:

I'm trying to figure out which is the command line arguments used by Visual Studio when you run the MsTest tests, I guess it starts with:

 MSTest.exe /testmetadata:%SolutionName%.vsmdi /testlist:

But I couldn't figure out how to fill the testlist parameter, because both the test list name and id get the following error:

The test list path 8c43105b-9dc1-4917-a39f-aa66a61bf5b6 cannot be found.
An error occurred while executing the /testlist switch.

回答1:

I'm trying to figure out which is the command line arguments used by Visual Studio when you run the MsTest tests

It depends on how do you run your tests from Visual Studio. See the following examples:

  1. You are selecting some tests from the Test View window and run them

    MSTest.exe /testcontainer:TestProject.dll /test:TestMethod1 /test:TestMethod2 ...
    
  2. Your are running all the tests from the Test View window

    MSTest.exe /testcontainer:TestProject.dll 
    
  3. You have filtered your tests by a category through Test View window and run this category

    MSTest.exe /testcontainer:TestProject.dll /category:CategoryName
    
  4. You have opened the *.vsmdi file and selected some TestLists to run

    MSTest.exe /testmetadata:*.vsmdi /testlist:TestList1 /testlist:TestList2 ...
    
  5. You are running Load or Ordered tests

    MSTest.exe /testcontainer:LoadTest1.loadtest /testcontainer:OrderedTest1.orderedtest
    

You can combine the above examples (arguments) to create the MSTest command that suits on your case. The only restriction you have is that you cannot use the /testmetada and /testcontainer arguments together.

As for the TestList argument you just need to give as parameter the name of the list. If it is not found then your test list does not exist or it does not belong to the *.vsmdi you have defined on the /testmetadata argument.

I am sure that you have already done it, but you can check the following link: MSTest.exe Command-Line Options



回答2:

See following link. Even though this post is about msbuild. It uses exec task for calling mstest. If you use /testlist you need to give metadata file. You can use /testcontainer and give dll for your test project. It will run all of your tests.

/testcontainer:[file name]        Load a file that contains tests. You can
                               Specify this option more than once to
                               load multiple test files.
                               Examples:
                                 /testcontainer:mytestproject.dll
                                 /testcontainer:loadtest1.loadtest