DoclerLabs / hexMachina

Releases, issues, documentation, website of hexMachina, framework written in Haxe
http://hexmachina.org
MIT License
44 stars 8 forks source link

hexUnit - test support java #277

Open aliokan opened 6 years ago

aliokan commented 6 years ago

Timer.delay is crashing in TestRunner._endTestMethodCall

MacBook-Pro:bin ali_o_kan$ java -jar java/MainUnitTest-Debug.jar 
TraceNotifier.hx:73: <<< Start hex.HexUnitSuite tests run >>>
TraceNotifier.hx:73:   Suite class 'HexUnit suite'
TraceNotifier.hx:73:     Suite class 'Assertion'
TraceNotifier.hx:73:       Test class 'hex.unittest.assertion.AssertionTest'
TraceNotifier.hx:73:         * [testAssertIsTrue] test Assert.isTrue 0ms
MethodRunner.hx:121: TClass(class java.lang.IllegalArgumentException)
MethodRunner.hx:122: []
TraceNotifier.hx:73:         FAILURE!!! * [testAssertIsTrue] test Assert.isTrue
TraceNotifier.hx:73:           hex.error.Exception at hex.unittest.runner.MethodRunner#_notifyError line:126 in file 'MethodRunner.hx' | java.lang.IllegalArgumentException: Non-positive period.
TraceNotifier.hx:73:           java.lang.IllegalArgumentException: Non-positive period.: 
Exception in thread "main" java.lang.IllegalArgumentException: Non-positive period.
    at java.util.Timer.scheduleAtFixedRate(Timer.java:327)
    at haxe.Timer.__hx_ctor_haxe_Timer(Timer.java:28)
    at haxe.Timer.<init>(Timer.java:17)
    at haxe.Timer.delay(Timer.java:35)
    at hex.unittest.runner.TestRunner._endTestMethodCall(TestRunner.java:385)
    at hex.unittest.runner.TestRunner.onFail(TestRunner.java:336)
    at hex.unittest.runner.Trigger.onFail(Trigger.java:117)
    at hex.unittest.runner.MethodRunner._notifyError(MethodRunner.java:330)
    at hex.unittest.runner.MethodRunner.run(MethodRunner.java:198)
    at hex.unittest.runner.TestRunner._runTestClass(TestRunner.java:180)
    at hex.unittest.runner.TestRunner._runClassDescriptor(TestRunner.java:109)
    at hex.unittest.runner.TestRunner._runSuiteClass(TestRunner.java:138)
    at hex.unittest.runner.TestRunner._runClassDescriptor(TestRunner.java:91)
    at hex.unittest.runner.TestRunner._runSuiteClass(TestRunner.java:138)
    at hex.unittest.runner.TestRunner._runClassDescriptor(TestRunner.java:91)
    at hex.unittest.runner.TestRunner.run(TestRunner.java:69)
    at hex.unittest.runner.ExMachinaUnitCore._runNext(ExMachinaUnitCore.java:216)
    at hex.unittest.runner.ExMachinaUnitCore.run(ExMachinaUnitCore.java:49)
    at haxe.root.MainUnitTest.main(MainUnitTest.java:873)
    at haxe.root.MainUnitTest.main(MainUnitTest.java:13)

Need to fix MethodRunner._notifyError (line 118) before to get this Timer error:

if ( !Std.is( e, Exception ) )
{
    var err : Exception = null;
    trace(Type.typeof(e));
    trace(Reflect.fields(e));
    #if php
    err = new Exception( "" + e, e.p );
    #elseif java
    err = new Exception( e.toString() );
    #elseif flash
    err = new Exception( cast( e ).message );
    #else
    err = new Exception( e.toString(), e.posInfos );
    #end
    this._trigger.onFail( Date.now().getTime() - this._startTime, err );
    Assert._logFailedAssertion();
}