读取Xamarin NUnit测试类中的资产

读取Xamarin NUnit测试类中的资产,nunit,xamarin.android,android-testing,Nunit,Xamarin.android,Android Testing,我想读一个模拟RSS提要文件,在Android应用程序的Xamarin NUnit测试中进行测试。测试类没有上下文,因此我无法将文件放在Assets文件夹中并执行以下操作: System.IO.Stream strIn = instanceOfAssetManager.Open(feedFile); 它也没有祖先,所以我不能这样做: System.IO.Stream strIn = this.Class.ClassLoader.ResourceAsStream(feedFile); 有什么建

我想读一个模拟RSS提要文件,在Android应用程序的Xamarin NUnit测试中进行测试。测试类没有上下文,因此我无法将文件放在Assets文件夹中并执行以下操作:

System.IO.Stream strIn = instanceOfAssetManager.Open(feedFile);
它也没有祖先,所以我不能这样做:

System.IO.Stream strIn = this.Class.ClassLoader.ResourceAsStream(feedFile);
有什么建议可以帮我找到快乐的事吗

该案例解决了不同平台/设置的类似问题:

测试类没有上下文,因此我无法将文件放在Assets文件夹中并执行以下操作:

System.IO.Stream strIn = instanceOfAssetManager.Open(feedFile);
您需要使用Android资产有什么原因吗?通过将文件的构建操作设置为
EmbeddedResource
使用,可以实现更大的可移植性--它在所有.NET平台上都存在--并巧妙地避开了Android上下文问题

如果您需要使用Android资产,那么您可以使用该属性,该属性与该属性等效,除了静态和随处可用之外

测试类没有上下文,因此我无法将文件放在Assets文件夹中并执行以下操作:

System.IO.Stream strIn = instanceOfAssetManager.Open(feedFile);
您需要使用Android资产有什么原因吗?通过将文件的构建操作设置为
EmbeddedResource
使用,可以实现更大的可移植性--它在所有.NET平台上都存在--并巧妙地避开了Android上下文问题


如果需要使用Android资产,则可以使用该属性,该属性与该属性等效,但静态和随处可用除外。

检查文件的属性。我必须将“构建操作”设置为AndroidAsset,然后才能使用
instanceOfAssetManager.Open(feedFile)

检查文件的属性。我必须将“构建操作”设置为AndroidAsset,然后才能使用
instanceOfAssetManager.Open(feedFile)

您是否尝试过让测试类派生自Android.test.InstrumentationTestRunner
,然后调用
TargetContext.Resources.Assets.Open(“feedFile”)
?@Aaron我的测试应用程序弹出了一个“Java.Lang.NoClassDefFoundError”“当我从
Android.Test.InstrumentationTestRunner
派生时。它似乎与Nunitlite不兼容。您是否尝试让测试类派生自Android.test.InstrumentationTestRunner,然后调用
TargetContext.Resources.Assets.Open(“feedFile)
?@Aaron我的测试应用程序弹出一个“Java.Lang.NoClassDefFoundError”“当我从
Android.Test.InstrumentationTestRunner
派生时。它看起来与Nunitlite不兼容谢谢你的指导Jon。我已经将构建操作设置为
EmbeddedResource
,但是语法让我感到困惑。我可以看到创建了以下文件:
。/obj/Debug/SpotlightTests.Assets.appfeed.xml
,但是如果我尝试使用
Android.App.Application.Context.Resources.Assets.Open()读取它
作为
appfeed.xml
或者使用MS文档中所说的路径点语法
SpotlightTests.Assets.appfeed.xml
我得到了一个FileNotFound异常。如果使用
EmbeddedResource
,则需要使用,例如
typeof(Something.Assembly.GetManifestResourceStream(“name”)
!非常感谢。谢谢你的指导,乔恩。我已经将构建操作设置为
EmbeddedResource
,但是语法让我感到困惑。我可以看到创建了以下文件:
。/obj/Debug/SpotlightTests.Assets.appfeed.xml
,但是如果我尝试使用
Android.App.Application.Context.Resources.Assets.Open()读取它
作为
appfeed.xml
或者使用MS文档中所说的路径点语法
SpotlightTests.Assets.appfeed.xml
我得到了一个FileNotFound异常。如果使用
EmbeddedResource
,则需要使用,例如
typeof(Something.Assembly.GetManifestResourceStream(“name”)
!谢谢。