This pull requests solves the issue that is mentioned in issue #10 .
An additional option to specify a timeout for the process is implemented. I observed that the automation interfaces does not perform particularly well on system with low RAM. Even though a potential fix was provided in issue #5 , the problem still occurs from time to time. If a timeout is provided, a user of TcUnit-Runner can implement a retry(x) {} step in Jenkins to keep the butler happy.
During testing we are now monitoring the AdsState for all PLC ports that are used in the solution. If any of them is not AdsState.Run the process is terminated. TcUnit-Runner prepares an environment where the AdsState should be AdsState.Run and if it is not the case, this is an indication for a TwinCAT issue (no license activated, PLC Exception).
I tested the implementation with my setup, but more testing on your side, @sagatowski would be appreciated.
This pull requests solves the issue that is mentioned in issue #10 .
An additional option to specify a timeout for the process is implemented. I observed that the automation interfaces does not perform particularly well on system with low RAM. Even though a potential fix was provided in issue #5 , the problem still occurs from time to time. If a timeout is provided, a user of TcUnit-Runner can implement a
retry(x) {}
step in Jenkins to keep the butler happy.During testing we are now monitoring the AdsState for all PLC ports that are used in the solution. If any of them is not
AdsState.Run
the process is terminated. TcUnit-Runner prepares an environment where the AdsState should beAdsState.Run
and if it is not the case, this is an indication for a TwinCAT issue (no license activated, PLC Exception).I tested the implementation with my setup, but more testing on your side, @sagatowski would be appreciated.