nUnit 新手,遇到错误……“在此上下文中无法访问,因为它是‘公共’”

Posted

技术标签:

【中文标题】nUnit 新手,遇到错误……“在此上下文中无法访问,因为它是‘公共’”【英文标题】:New to nUnit, getting error ... "is not accessible in this context because it is 'Public'" 【发布时间】:2016-05-22 15:18:59 【问题描述】:

我在 nUnit 中编写了以下代码作为我的第一个测试。

Public Class Tests

    <TestFixture()>
      Private Class TranslationTest

          <Test()>
          Private Sub LanguageTest()
            Dim stringToTest As String = "Tower Count"

            strLanguageText(stringToTest, LanguageIDs.English, 0)
            Assert.Equals("Tower Count")


          End Sub
      End Class
    End Class

Intellisense 表示 strLanguageText 方法和 LanguageIDs.Enlish 枚举“在此上下文中不可访问,因为它是‘公共的’”。我可以理解某些东西无法访问,因为它的修饰符是 Private,但是为什么使用 Public 修饰符会阻止它被测试访问?

【问题讨论】:

【参考方案1】:

尽管当我查看正在测试的方法时错误显示为“公共”,但它的修饰符是 Friend。当我将测试分配到与正在测试的方法相同的命名空间时,它起作用了。

更新:根据 O'Reilly 的 C# & VB.NET Conversion Pocket Reference,“IL 级别的外部类只有两种可能的范围:私有或公共。”

我的猜测是,这就是错误报告为“公共”的原因。

【讨论】:

以上是关于nUnit 新手,遇到错误……“在此上下文中无法访问,因为它是‘公共’”的主要内容,如果未能解决你的问题,请参考以下文章

问题在Jenkins上运行NUnit测试

Visual Studio 2013/2015 测试项目模板 - 用于 NUnit?

Nunit - 没有发现测试 [没有错误消息]

添加控制器时未找到 nunit 框架错误

如何制作 .dll 并使用 NUnit 运行它?

即使在配置文件中使用 .NET 4.0 后,nunit 代理也会挂起