Remove utest dependency from tests
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
t() {
|
||||
haxe -cp hank -lib utest -lib hscript hxml/$1.hxml --interp > test-output.txt
|
||||
haxe -cp hank -lib hscript hxml/$1.hxml --interp > test-output.txt
|
||||
$VISUAL test-output.txt
|
||||
}
|
||||
|
||||
ta() {
|
||||
haxe -cp hank -lib utest -lib hscript hxml/all-platforms.hxml > test-output.txt
|
||||
haxe -cp hank -lib hscript hxml/all-platforms.hxml > test-output.txt
|
||||
$VISUAL test-output.txt
|
||||
}
|
||||
|
||||
tas() {
|
||||
haxe -D stop_on_error -cp hank -lib utest -lib hscript hxml/all-platforms.hxml > test-output.txt
|
||||
haxe -D stop_on_error -cp hank -lib hscript hxml/all-platforms.hxml > test-output.txt
|
||||
$VISUAL test-output.txt
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
# @install: lix --silent download "haxelib:/utest#1.13.2" into utest/1.13.2/haxelib
|
||||
-cp ${HAXE_LIBCACHE}/utest/1.13.2/haxelib/src
|
||||
-D utest=1.13.2
|
||||
--macro utest.utils.Macro.checkHaxe()
|
||||
--macro utest.utils.Macro.importEnvSettings()
|
||||
@@ -1,65 +1,77 @@
|
||||
package hank;
|
||||
|
||||
import utest.Assert;
|
||||
import haxe.ds.Option;
|
||||
import hank.LogUtil;
|
||||
using StringTools;
|
||||
|
||||
class HankAssert {
|
||||
public static function assert(condition: Bool, message: String) {
|
||||
if (condition) pass(message);
|
||||
else fail(message);
|
||||
}
|
||||
|
||||
public static function pass(message: String) {
|
||||
message = ' ✓' + message;
|
||||
LogUtil.cleanTrace(message);
|
||||
}
|
||||
|
||||
public static function fail(message: String) {
|
||||
message = ' ✗' + message;
|
||||
LogUtil.cleanTrace(message);
|
||||
}
|
||||
|
||||
/**
|
||||
Assert that two complex values (i.e. algebraic enums) are the same.
|
||||
**/
|
||||
public static function equals(expected:Dynamic, actual:Dynamic, ?pos:String) {
|
||||
var verboseMessage = ' Asserting that ${actual} is expected value ${expected}';
|
||||
if (Std.string(expected) == Std.string(actual)) {
|
||||
verboseMessage = ' ✓' + verboseMessage;
|
||||
} else {
|
||||
verboseMessage = ' ✗' + verboseMessage;
|
||||
}
|
||||
LogUtil.cleanTrace(verboseMessage);
|
||||
var failureMessage = 'Assertion that ${actual} is expected value ${expected} failed ${if (pos!= null) 'at ${pos}' else ''}';
|
||||
Assert.equals(Std.string(Type.typeof(expected)), Std.string(Type.typeof(actual)), failureMessage);
|
||||
Assert.equals(Std.string(expected), Std.string(actual), failureMessage);
|
||||
assert(Std.string(expected) == Std.string(actual), verboseMessage);
|
||||
}
|
||||
|
||||
/** Assert that a string contains an expected substring. **/
|
||||
public static function contains(expected:String, actual:String) {
|
||||
Assert.notEquals(-1, actual.indexOf(expected));
|
||||
var verboseMessage = ' Asserting that "${actual}" contains "${expected}"';
|
||||
assert(actual.contains(expected), verboseMessage);
|
||||
}
|
||||
|
||||
/**
|
||||
Assert that a string does not contain an unexpected substring.
|
||||
**/
|
||||
public static function notContains(unexpected:String, actual:String) {
|
||||
Assert.equals(-1, actual.indexOf(unexpected));
|
||||
var verboseMessage = ' Asserting that "${actual}" does not contain "${unexpected}"';
|
||||
assert(!actual.contains(unexpected), verboseMessage);
|
||||
}
|
||||
|
||||
public static function isSome<T>(option:Option<T>) {
|
||||
var verboseMessage = ' Asserting that ${option} is Some(_)';
|
||||
switch (option) {
|
||||
case Some(_):
|
||||
Assert.equals(0, 0);
|
||||
pass(verboseMessage);
|
||||
case None:
|
||||
Assert.fail();
|
||||
fail(verboseMessage);
|
||||
}
|
||||
}
|
||||
|
||||
public static function isNone<T>(option:Option<T>) {
|
||||
var verboseMessage = ' Asserting that ${option} is None';
|
||||
switch (option) {
|
||||
case Some(_):
|
||||
Assert.fail();
|
||||
fail(verboseMessage);
|
||||
case None:
|
||||
Assert.equals(0, 0);
|
||||
pass(verboseMessage);
|
||||
}
|
||||
}
|
||||
|
||||
public static function throws(f:Void->Void, ?message:String) {
|
||||
try {
|
||||
f();
|
||||
Assert.fail("Expected an exception to be thrown");
|
||||
fail("Expected an exception to be thrown");
|
||||
} catch (e:String) {
|
||||
if (message != null) {
|
||||
Assert.equals(message, e);
|
||||
}
|
||||
Assert.equals(0, 0);
|
||||
equals(message, e);
|
||||
} else {
|
||||
pass("An exception was thrown, as expected");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,14 +6,12 @@ import hank.Story.StoryFrame;
|
||||
import hank.LogUtil;
|
||||
import hank.HankBuffer;
|
||||
import haxe.CallStack;
|
||||
import utest.Assert;
|
||||
|
||||
class StoryTestCase extends utest.Test {
|
||||
class StoryTestCase {
|
||||
var testsDirectory:String;
|
||||
var files:PreloadedFiles = new Map();
|
||||
|
||||
public function new(testsDirectory:String, ?preloadedFiles:PreloadedFiles) {
|
||||
super();
|
||||
this.testsDirectory = testsDirectory;
|
||||
if (preloadedFiles != null)
|
||||
this.files = preloadedFiles;
|
||||
@@ -68,7 +66,7 @@ class StoryTestCase extends utest.Test {
|
||||
} catch (e:Dynamic) {
|
||||
var failMessage = ' Error testing $folder/$file at transcript line $lastTranscriptLine: $e, ${LogUtil.prettifyStack(CallStack.exceptionStack())}';
|
||||
LogUtil.cleanTrace(failMessage);
|
||||
Assert.fail(failMessage);
|
||||
HankAssert.fail(failMessage);
|
||||
}
|
||||
#end
|
||||
}
|
||||
@@ -100,7 +98,6 @@ class StoryTestCase extends utest.Test {
|
||||
} catch (e:Dynamic) {
|
||||
LogUtil.cleanTrace(' Error parsing $storyFile: $e');
|
||||
LogUtil.prettyPrintStack(CallStack.exceptionStack());
|
||||
Assert.fail();
|
||||
return;
|
||||
}
|
||||
#end
|
||||
@@ -130,7 +127,7 @@ class StoryTestCase extends utest.Test {
|
||||
} while (line != null && line.startsWith("*"));
|
||||
|
||||
// Assert that the storyframe is a corresponding HasChoices enum
|
||||
HankAssert.equals(HasChoices(choices), frame);
|
||||
HankAssert.equals(HasChoices(choices, [for(choice in choices) []]), frame);
|
||||
|
||||
continue;
|
||||
} else if (line.startsWith(">")) {
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
# @install: lix --silent download "haxelib:/utest#1.13.2" into utest/1.13.2/haxelib
|
||||
-cp ${HAXE_LIBCACHE}/utest/1.13.2/haxelib/src
|
||||
-D utest=1.13.2
|
||||
--macro utest.utils.Macro.checkHaxe()
|
||||
--macro utest.utils.Macro.importEnvSettings()
|
||||
@@ -1,16 +1,15 @@
|
||||
package tests.main;
|
||||
import utest.Test;
|
||||
import hank.StoryTestCase;
|
||||
import hank.LogUtil;
|
||||
|
||||
@:build(hank.FileLoadingMacro.build(["examples/"]))
|
||||
class Examples extends Test {
|
||||
class Examples /*extends Test*/ {
|
||||
public static function main() {
|
||||
trace('Testing examples for target ${LogUtil.currentTarget()}');
|
||||
utest.UTest.run([new StoryTestCase("examples"
|
||||
new StoryTestCase("examples"
|
||||
#if !sys
|
||||
, files
|
||||
#end
|
||||
)]);
|
||||
).testAllExamples();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user