NG-CONF 2017 Day One Highlights

I’m glad to be back again at ng-conf in Salt Lake City. I’ve used Angular since the very beginning and it continues to get better. Here are some of the highlights that stood out to me from the first day of the conference. Keynote During the keynote, there was discussion about gauging the success of…

Paraffin 3.7 – Support for WiX 4.0

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…

New WintellectPowerShell Version with Visual Studio 2017 Support

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…

Running Spectron Tests in Visual Studio Team Services Build

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. Setting up build definitions When…

Unexpected Benefits of End-to-end Testing

End-to-end Testing 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…

Get Function Keys By Default with Parallels and a MacBook Pro Touch Bar

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…

Top NPM Packages for Spectron Testing

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. Jasmine Reporters The default reporter for Spectron is to just log out to the terminal.…

Introducing the Spectron Command Line Tool

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…

Spectron Tip: Getting Selectors From Chrome Dev Tools

If you’re using Spectron (or even Protractor) for automating your applications probably the most time consuming thing is to figure out exactly what selectors you need in order to interact with your application. Whether to click on a button or to test if the text of a dialog is what you expect, you need a…

Creating Page Files for Spectron Tests

Now that we’ve got Spectron working, let’s add some more to it to help with our testing. One way of doing end-to-end testing is to have a separate file that contains our page objects and any helper functions specific to that page. This will help the readability and maintainability of our tests. The latest code…

End-to-end Testing Electron Apps with Spectron

You’ve built a really awesome Electron application, but you want to include a few automated tests to make sure a regression doesn’t occur? Spectron is here to help! Spectron is Electron’s end-to-end testing library. Let’s see how it we can set it up to use in our own Electron projects. If you want to go straight…

Why can’t I use the “dynamic” C# keyword in Xamarin.iOS?

Occasionally I see this question pop up in various forms; usually an app developer has written some fairly clever code that relies on the dynamic keyword in C#. Their code runs swimmingly on every other platform—and it also compiles just fine for iOS. But when they run the app on a physical iPhone or iPad…