On Thursday Wintellect held a live hand’s-on webinar on Xamarin mobile development for building cross-platform apps including IOS, Android and Windows Devices. The agenda included an interactive and coding presentation from Jason Bell, including the mobile landscape and development options, the Xamarin development platform, Xamarin application architectural options and building shared application components.
After a couple of requests, I added WiX 4.0 support to my Paraffin project, the file harvester, which makes maintaining installer projects a lot easier. As part of this update, I moved the code to Visual Studio 2017 and moved to .NET Framework 4.6.2. I nearly went down the path of making a .NET Core version of the console application, but will save that for another day.
Instead of rehashing the scope and purpose of Paraffin here, head over to your favorite search engine and search “Wintellect Paraffin” and you will find all the links that show how to use it. Also, if you don’t want to mess with compiling the application, head on over to the Releases tab page on the Git Hub project page and you can download the compiled binary along with it’s PDB file.
Thanks so much for using Paraffin! Who knew that a quick sample I wrote to learn about LINQ to XML would grow into a useful utility.… Read more
In this week’s Introduction to GraphQL & Relay webinar attendees learned how GraphQL could help improve upon Rest Services by allowing them to view data as a graph. This data can also be queried to serve data in the shape and amount needed by the consumer. Relay was also introduced showing how it is a great framework for React applications to consume GraphQL services.
Through polling we found most attendees hadn’t used GraphQL so it was a very informative session for the audience to understand the benefits and how to use it. After reviewing the GraphQL code there was a live demo to experiment with the code followed by a demonstration of Relay and a final code review. We ended the session with a live Q & A so the audience could ask any questions regarding the topics discussed.
Eric covered the differences between Angular 1 and 2 as well as a live coding session for the essentials of building components, building templates, data binding and handling events.
We have a new version of Visual Studio coming soon so I did the work to update my WintellectPowerShell module to support it. And, what a huge adventure that turned out to be! I will discuss why its support for Visual Studio 2017 was hard a bit later in this blog entry. For those of you who are new to WintellectPowerShell, it is a module that brings a number of useful cmdlets for setting up symbol and source servers for Visual Studio 2013-2017 as well as WinDBG. Other cmdlets automatically download and extract all the lovely goodness of the SysInternal tools, automate the analysis of lots of minidump files, and so on. The module has been helpful to me over the years. You can look at all the source code on GitHub: https://github.com/Wintellect/WintellectPowerShell. To install WintellectPowerShell directly, execute the following command in PowerShell:
If you have a previous version of WintellectPowerShell installed, you will see an ‘Authenticode issuer’ error when you try to update. The error is because since I last released a WintellectPowerShell build, my code signing certificate needed to be renewed. When PowerShellGet does checks a signed module, it checks all the certificate fields.… Read more
Having end-to-end tests and running them locally can definitely be beneficial, but one of the main reasons to have them is to run them automatically during a nightly build. Getting these tests to run in Visual Studio Team Services isn’t trivial. Here’s some tips on how to get them going.
When first setting up a build for your Spectron tests all the build definitions need to be manually entered. However, the first step is to actually specify what repository you want to use. This gets set when you start your first build definition.
Select the “Empty” template when the dialog pops up.
From there you can then choose what repository you want to from VSTS or even choose a repository from GitHub.
Here we can set up our steps to have our tests run. If you recall from our [first post on Spectron with our demo project I set up an
npm run script to run our tests. In this case, we only have two tasks to create for our build definition:
So the easy part is done. I only say that, though, because this next part was a bit tricky and wasn’t very well documented on what to do to get these types of tests to run.… Read more
Testing where the entire application is tested in a real-world scenario such as communicating with the database, network, hardware and other applications.
The above is the general definition of what an end-to-end test is. Most of these tests are written to make sure general flows of the application that a user may take are working correctly and as expected. However, there are other benefits to running and writing these tests that may not be as well known.
True, end-to-end tests are supposed to find bugs, but that’s mainly when you run tests that have already been written to make sure no bugs were introduced as the project is being developed on. However, there are a lot of bugs you can find when you’re writing end-to-end tests. In my experience, I’ve usually found an issue while writing an end-to-end test on a specific functionality that I’m testing.
Unit tests will do this, too, but end-to-end tests can find issues that aren’t always logical, such as UI issues and components not interacting as expected. This, to me, is probably the most useful thing about having end-to-end tests.
Applications depend on all components of the application interacting and working correctly.… Read more
Having purchased a 15 inch MacBook Pro with Touch Bar recently, I’ve been having a good time seeing how that Touch Bar can be used. With applications that know about the Touch Bar, it is an interesting UI approach. But with many macOS applications not having full Touch Bar support, I’ll reserve full judgment until most apps support it. I will say that the Photos app shows a tremendously useful way to use the Touch Bar.
One app I use all the time, the virtual machine program Parallels, does not currently support the Touch Bar, so whenever you are in it, you see the default Touch Bar view:
The only problem is that for Windows development, you really, really need those function keys. Sure you can press the FN key to have them come back, but I wanted the function keys to be the default. A little poking around in System Preferences, Keyboard settings, Shortcuts, showed the Function Keys section. I added Parallels Desktop to the list and, voila, now Parallels defaults to showing the function keys whenever Parallels has focus. Not the most earth shattering of tips, but one that certainly made my life better.
Now if only Apple would sell a Touch Bar external keyboard…… Read more
Spectron is a great tool for testing your Electron applications. However, some help is needed to get the full use out of it. This post will go through all of the npm packages I’ve found useful in my Spectron testing.
The default reporter for Spectron is to just log out to the terminal. That’s great, but I like pretty colors in my terminal, especially when they’re green for success and red for error. That’s where the jasmine reporters package comes in. Actually, there are a few reporters in this package. Not just one for the terminal. In fact, I use two reporters from this package – the terminal reporter and the JUnit XML Result reporter.
Why do I use the second reporter? Well, that reporter plays very well with the jasmine-xml2html-converter package. This package converts the XML results from the JUnit XML Result reporter into an HTML file with graphs and a much easier way to view the tests.
Something I’ve used that seemed to help is to break up your gulp tasks to run tests by scenario.… Read more
After some Spectron experience there tends to be some things that can get repetitive when creating Spectron tests. I figured creating a tool to do just that would be handy to have. So I created the spectron-cli npm package.
Granted, this command line tool doesn’t do all that much. Currently, it only has two commands to it.
The “init” command will create an
e2e directory, if it doesn’t already exist in the current directory it’s run in. It will also create two files in that directory for you – a
test.spec.js file and a
test.page.js file. These files will include templates to help you get started writing your Spectron tests.
The “add” command will just create a spec file and a page file with the name of your choosing inside the
So feel free to install the tool with
npm install spectron-cli and see how it works for you (or just find ways to break it). It is open source so feel free to submit and enhancements or fixes or just create an issue.… Read more