Hi all,
Years ago I wrote a few android apps, and I've decided to get back in and try it with Xamarin. After going back and forth on ideas, I decided to give the xamarin forms a whirl. From the defaults I generated a forms app with the following:
Xamarin.Forms.Droid
Xamarin.Forms.UWP
Xamarin.Forms.PCL
(DELETED iOS)
Now from my understanding, I created an additional Xamarin.Forms.Droid.UITest project using XUnit (Note: I've tried the default of NUnit too)
I've got a mix of styles (from the PCL) and theme (from Droid).
Recently I asked a question over trying to get my theme recognized within the android test project: Unit testing a Xamarin Forms Android specific code project
I'm not running into a conflict that shows up within xunit / nunit as the testing strategy. I feel like it's because the FormsAppCompatActivity with an older activity type, but I'm new to Xamarin and am unsure on how to approach this.
I get a lot of these type of errors:
Attribute layout_anchorGravity
already defined with incompatible format.
The full list of the similar Attribute errors is:
here is the basic code... At this point, I got a simple test of forcing it to be false to know it works.
//Within the Android Forms project, I have this inheritance: public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity { // typical code } //within the Android UITest project public class MainActivity : Xunit.Runners.UI.RunnerActivity { // tests can be inside the main assembly AddTestAssembly(Assembly.GetExecutingAssembly()); AddExecutionAssembly(typeof(ExtensibilityPointFactory).Assembly); // or in any reference assemblies //AddTestAssembly(typeof(PortableTests).Assembly); // or in any assembly that you load (since JIT is available) #if false // you can use the default or set your own custom writer (e.g. save to web site and tweet it ;-) Writer = new TcpTextWriter ("10.0.1.2", 16384); // start running the test suites as soon as the application is loaded AutoStart = true; // crash the application (to ensure it's ended) and return to springboard TerminateAfterExecution = true; #endif // you cannot add more assemblies once calling base base.OnCreate(bundle); }
Any help would be much appreciated,
Kelly
P.S. I've also asked about this on stack overflow without resolution: https://stackoverflow.com/questions/45070750/xamarin-android-uitest-theme-style-conflicts
Answers
I assuming this is the right approach, but I could be completely wrong. The main thing is that I'm trying to do is integration testing (really unit testing android code, but like we all know, we have to go through the emulator at times).
Where this really started was that I had a basic UI that had a mix of styles and themes. The problem when going down this path was the unit testing project saying: hey buddy I can't find the theme that was referenced within the app. Eventually, with the help of an individual on Stack Overflow, that person had told me to change the reference to @style/mytheme. After doing this, the style and themes were seen from the project, but now I get the styling issues. I mentioned above.
Do you others do unit testing or integration testing of your xamarin forms android app with AppCompat activities? How do you approach this? I've looked around, and it seems that most tutorials show this concept pre AppCompat.