ERP 10.2.300 ATE Boilerplate

Good evening fellow amazing Epicor peeps,

I have just started utilizing the ATE tool and man oh man…what a workout it was just to get the damn thing to record something. Does someone have boiler plate code to allow the tool to work in the shell or active home page environment rather than the ugly and outdated classic version? It seems the tool is totally dependant on that alone. I need a tool that can effectively recreate the steps given the new versions. Not based on E9 :frowning:

Hello, Jeff. Did you make any progress on this, and what resources are you currently using to perform the setup? I’ve read through Sign In but that’s the extent of my knowledge on the topic.

Also @Mark_Wonsil I noticed you have some experience in this area. Do you have any additional reading or guidance on this?

Actually, the best resource for ATE that I know is @hkeric.wci. The Help file does have some basic scripts but Haso had shown me one of his testing scripts before Insights 2018.

I do struggle a bit with the way that Epicor is handling testing.

< mini-rant >
We want companies to stay up-to-date but charge for the tool that helps them do that. Also, it’s an integration testing tool, not a unit testing tool. It is a .Net tool so it won’t be useful for web-based testing like we’ll see with Kinetic apps. ATE has its place but I feel Epicor should only charge for the Recording tool - which really does add value but should distribute the run time to encourage users to stay current.
</ mini-rant >

What I’d REALLY like to see is a group of users here develop a platform for test-driven and/or behavior-driven development for the Epicor User Programmer. We should be able to test BPMs, configurators, etc. in a test harness that mocks up sessions and data sources so they run quickly. I would like to use the techniques from Michael Feathers , Kent Beck, and Bob Martin. and promote the SOLID programming principles as well as Clean Coding/Architectures.

Who’s in?


I am, though this is not a quick and easy task. Actually, this is where my newfound interest in the ATE is coming from. I have been attending SQL Pass Summit for the past five years or so and was preparing a dev-oriented presentation on what I’ve learned about test driven development and the evils of letting entity framework auto-generate all of your tSQL and was struck with conviction about not employing such techniques for my Epicor development. I’ve long thought about writing custom code to automate testing of my internal code, but estimated the value did not outweigh the effort of starting up and maintaining the project over time for infrequently changed customizations.

I’ve started building XUnit tests for a variety of my C# .NET projects, and I can see this working fine for Epicor testing as well. Before I go down the rabbit hole of writing tests for each custom requirement I have, I figure it is worth giving another look at the ATE, which I kind of wrote off after being unimpressed during a demo several years ago. The way I see it, test collections could look like XUnit tests for all of your custom requirements, which would call Selenium.WebDriver logic for browser testing or Ice logic as applicable. Not sure if the ATE is still generating those VB subroutines, if you need to rely on the actual ATE runner to get test results, or if there is a (better than COM interop) interface with ATE that will let you run it from XUnit. Maybe REST would be an ideal way to make this easier, but it doesn’t come without a price of additional managed code.

Did you know that Microsoft is working on an open source project called WinAppDriver, which is a .Net driver that acts like Selenium’s WebDriver?

There is also an open source test runner (Gauge) that is more BDD that has piqued my interest. It’s called Gauge and it’s by the same people who brought you Selenium.

I think these kinds of frameworks could work for Epicor users (E10 or P21) since it handles both .Net and Web testing.

Very cool. I like the look of WinAppDriver thus far (Edit: I actually bookmarked this a while ago but didn’t do anything with it). I’m not set on any one technology, but like the idea of having the capability of behavior and test driven development within “my collection of tests”.

1 Like