4

現在、C#とVisualStudio2012を使用したプロジェクトに取り組んでいます。

VS2012がすべてのテストを実行したくない理由を理解するのに苦労しています。

2つのうち1つの単体テストを実行する1つのテストプロジェクトがあります。何を試しても、他の単体テストを実行したくありません。テストエクスプローラでは検出されません。「実行されない」テストにはファイルが含まれません。

明確にするための基本的なフレームワークは次のとおりです。

(私はソリューションのすべての部分を含むようにフレームワークを編集しました)

Solution
    MainProject
        ProjectA.Tests (that is the project)
           UnitTestsA.cs (Actually run)
           UnitTestsB.cs (Neven run)

2番目の単体テストファイルのコードは次のとおりです。

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
namespace MagicAdmin.Tests 
{      
    [TestClass] 
    public class UnitTest1 
    { 
        [TestMethod] 
        public void TestMethod1() 
        { } 
    } 
} 

どうすればこれを解決できますか?私は何を間違えますか?

4

4 に答える 4

7

私はこの問題を抱えていましたが、解決策を見つけました。

DotNetコンソールアプリで使用するための.NETCoreライブラリを構築しています。ライブラリには別のソリューションがあります。ライブラリには、ライブラリのプロジェクト、単体テストプロジェクト、およびショーケースプロジェクトが含まれています。

私はこれらの記事の手順に従いました:

ライブラリにいくつかのライブラリクラスを追加し、ライブラリのパッケージバージョンを必ず変更しました。ライブラリを再構築し、NuGETに公開しました。

テストプロジェクトにクラスを追加しましたが、テストクラスのルーチンを実行できませんでした。次の手順に従いました。-通常のC#クラスをテストプロジェクトに追加しました-クラスの先頭に[TestClass]を追加しました-public voidメソッドを追加し、その上に[TestMethod]を追加しました-テストプロジェクトでNuGETプロジェクトの管理を使用しました、ライブラリパッケージの最新バージョンに更新したことを確認しました

しかし、「すべて実行」は追加のテストを見ていませんでした。

私はついに、新しいテストクラスをパブリックとして宣言する必要があることを発見しました。次に、次のRun Allは、新しいテストクラスの追加のテストメソッドを適切に選択しました。

追加のテストクラスで必要なものの概要は次のとおりです。

using System;
using UtilityLib.APIDir;

namespace UtilityLibTest
{
   [TestClass]
   public class UnitTest_NewAPI
   {
       [TestMethod]
       public void TestNewAPI()
       {
          NewAPI tester = new NewAPI();
          bool someResult = tester.DoSomething();
       }
   }
}

Visual Studioプロジェクトに関するその他のコメント:

Visual Studioにはいくつかの問題があり、Visual Studioのすべてのコピーをシャットダウンして再起動すると、問題が解決する場合があります。

最初の.Netコアlibプロジェクトを作成し、それをNuGETに公開し、NuGETを使用して別のプロジェクトにロードしたとき、ライブラリ内のクラスを参照できませんでした。NuGETパッケージを調べるために、いくつかのツールを調べ始めました。

しかし、システムを再起動した後(まったく関係のない問題の場合)、Visual Studioを再起動すると、メインプロジェクトからライブラリクラスにアクセスできました。

もう1つの問題は、nugetライブラリを使用するプロジェクトにあります。アセンブリのバージョンをnugetで更新した後、呼び出し元のプログラムが更新されたライブラリの名前空間またはクラスにアクセスできない場合があります。呼び出し元のプロジェクトですべてを再構築すると、昨日その問題が修正されました。

于 2018-01-23T05:12:42.517 に答える
2

Visual Studioが単体テストを認識するためには、単体テストプロジェクトを再構築する必要があります。単体テストプロジェクトが現在のビルド構成の一部としてビルドするように設定されていないため、ソリューションのビルド時にビルドされていない可能性があります。

于 2013-01-29T20:04:00.710 に答える
0

私はついに自分の問題を理解しました。ほとんどの人が私と同じようにこの問題に遭遇すると思います。根本的な問題は、ユニットテストクラスを間違った方法で追加することです。「テスト」セクションを使用してファイルを再追加してみてください。これにより、クラスはプロジェクトへの依存関係を取得します。それ以外の場合、テストの実行時にプロジェクトに含まれていませんでした。

于 2019-12-02T02:47:42.560 に答える
0

2番目のC#クラスファイルを追加して、単一の単体テストプロジェクトで2番目のテストコードセットを管理する場合は、これらのことが行われることを確認してください。

  1. 適切なテストキーワード属性で装飾して、これがテストクラス、メソッド、例...であることをVisualStudioに通知します。

"MSユニットテスト"、テストクラス属性= [TestClass]、テストメソッド属性= [TestMethod]

"xUnit"、テストメソッド属性=[ファクト]

  1. クラス、メソッドがパブリックとして設定されていることを確認してください

このようなものが役立ちます ここに画像の説明を入力してください

于 2022-01-27T09:56:02.673 に答える