Visual Studio 15.8.1未运行MS单元测试

时间:2018-08-22 13:20:13

标签: c# visual-studio mstest

当我将Visual Studio更新到最新版本时,我的一个测试项目停止运行测试并输出以下消息:

测试项目{}没有引用任何.NET NuGet适配器。测试发现或执行可能不适用于该项目。建议在解决方案的每个测试项目中引用NuGet测试适配器。

更新:我使用的是MS Test,而不是像Nunit或Xunit这样的其他测试框架。

12 个答案:

答案 0 :(得分:37)

好的,您可以根据要求添加Nuget软件包。但是您也可以尝试禁用以下设置(“工具”->“选项”->“测试”): “为了提高性能,请仅在测试程序集文件夹中或在运行设置文件中指定使用测试适配器”。

让我知道它是否对您有用。

答案 1 :(得分:22)

我必须添加以下Nuget软件包:

MSTest.TestAdapter
MSTest.TestFramework
Microsoft.NET.Test.Sdk

Visual Studio release notes

答案 2 :(得分:17)

我遇到了同样的问题,以上所有答案均无效。 安装NUnit3TestAdapter V3.10.0可以解决此问题。

答案 3 :(得分:10)

如果您使用的是MS Test,请尝试安装

MSTest.TestAdapter通过nuget或

如果您使用的是nunit,请安装

NUnit3TestAdapter通过nuget的最新版本。

安装后,请重新启动Visual Studio,然后您可以看到正在运行的测试。

答案 4 :(得分:8)

我最近在xUnit上遇到了一个非常相似的问题,同样的结果,但是我的修复是因为以前使用较低版本的Microsoft.NET.Test.Sdk不需要显式安装XUnit.Runner.VisualStudio 。

当我将Microsoft.NET.Test.Sdk更新到版本15.9.0时,它停止运行测试,直到安装XUnit.Runner.VisualStudio Nuget。

现在,这似乎很明显,但是,以前不用它就可以应付,并且仍然有效。现在,事实并非如此。其他测试平台也可能如此。它对我有用。

答案 5 :(得分:0)

我的声誉得分当前不允许我将此作为评论添加到接受的答案中。作为参考,我将版本号附加到csharpsql's answer中引用的nuget包中:

private void runTextRecognition()
{

    // mSelectedImage <- Bitmap ( picture to find text )

    // convert bitmap in FirebaseVisionImage
    FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(mSelectedImage);
    FirebaseVisionTextRecognizer textRecognizer = FirebaseVision.getInstance()
            .getOnDeviceTextRecognizer();

    // disable btn search text in activity.
    button_search_text.setEnabled(false);

    textRecognizer.processImage(image)
            .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
                @Override
                public void onSuccess(FirebaseVisionText result)
                {
                    // send FirebaseVisionText ( txt ) 
                    processTextRecognitionResult(result);
                }
            })
            .addOnFailureListener(
                    new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e)
                        {
                            button_search_text.setEnabled(true);
                            e.printStackTrace();
                        }
                    });
}

// processTextRecognitionResult -> parse the results 
private void processTextRecognitionResult(FirebaseVisionText texts)
{
    List<FirebaseVisionText.TextBlock> blocks = texts.getTextBlocks();

    // ERROR -> No text found
    if (blocks.size() == 0) {
        txt_descripcion.setText( getResources().getString( R.string.alert_no_text ) );
        return;
    }
    mGraphicOverlay.clear();
    for (int i = 0; i < blocks.size(); i++) {
        List<FirebaseVisionText.Line> lines = blocks.get(i).getLines();
        for (int j = 0; j < lines.size(); j++) {
            List<FirebaseVisionText.Element> elements = lines.get(j).getElements();
            for (int k = 0; k < elements.size(); k++) 
            {
                //display result in picture
                Graphic textGraphic = new TextGraphic(mGraphicOverlay, elements.get(k));
                mGraphicOverlay.add(textGraphic);

                // (string) To get text you can use -> elements.get(k).getText() 
                Log.d(TAG, elements.get(k).getText() );

            }
        }
    }

}

答案 6 :(得分:0)

因为它只是一个复选框,所以我尝试在其他任何操作之前禁用以下设置,并且它起作用了!

工具-> 选项-> 测试-> ”“为了提高性能,请仅在测试部件文件夹或根据运行设置文件中的指定”

答案 7 :(得分:0)

我知道这很愚蠢,但对我来说,以前的答案没有用。之后,我只是重新启动计算机,并且一切正常:) (我的问题是,有一天有一天一切正常,而第二天就停止了工作)

答案 8 :(得分:0)

对我来说,经过数小时的尝试之后,我感到非常愚蠢,结果发现我只是忘记在单元测试方法上添加[TestMethod]指令。

答案 9 :(得分:0)

我正在尝试运行现有项目。我安装了.NET Core SDK 3.3,但没有安装2.1。这导致测试无提示地失败。

答案 10 :(得分:-1)

添加NuGet软件包对我不起作用。

禁用以下设置(“工具”->“选项”->“测试”):“为了提高性能,请仅在测试程序集文件夹中使用测试适配器,或者在runsettings文件中指定使用测试适配器”。

答案 11 :(得分:-1)

工具->选项->测试->“为提高性能,请仅在测试程序集文件夹中或按照运行设置文件中的指定使用测试适配器”

这对我有用!