Убедитесь, что программа Haxe будет работать на всех платформах

Я планирую написать библиотеки Haxe в подмножестве Haxe, которое будет компилироваться для каждого целевого языка Haxe. Есть ли способ убедиться, что программа Haxe будет компилироваться для всех целевых языков, и возможно ли это сделать без ручного тестирования скомпилированного кода на каждой целевой платформе?

Например, есть ли способ убедиться, что следующий код действителен на каждой целевой платформе, не тестируя его вручную на каждой отдельной платформе?

  class Test {
  static function main(){
    trace("How can I check to see which platforms this program will run on?");
  }
}

EDIT: я написал файл compile.hxml, который компилирует класс Test.hx для различных целевых языков. Сначала необходимо установить все необходимые библиотеки haxelib, чтобы он работал правильно.

-js test.js
-main Test

--next
-php www
-main Test

--next
-cpp cpp
-debug
-main Test

--next
-main Test
-java java

--next
-cs test
-main Test
-D haxe3

person Anderson Green    schedule 19.01.2013    source источник
comment
Я хочу полностью избежать функций, специфичных для платформы, при написании программ Haxe (чтобы гарантировать, что они будут компилироваться на как можно большем количестве языков).   -  person Anderson Green    schedule 19.01.2013
comment
Я надеюсь, что можно будет создать список совместимых платформ для данного исходного файла.   -  person Anderson Green    schedule 19.01.2013
comment
Я полагаю, что мог бы просто запустить компилятор Haxe для каждого целевого языка, а затем проверить его вывод, чтобы увидеть, для каких языков он успешно скомпилировался. Его нужно будет скомпилировать для каждого языка, используя один файл .hxml.   -  person Anderson Green    schedule 19.01.2013
comment
См. также stackoverflow.com/questions/13506879/   -  person joeytwiddle    schedule 04.04.2014


Ответы (1)


Я сделал нечто подобное с несколькими своими библиотеками (mdown и detox), и я смог протестировать несколько платформ с помощью MUnit/MassiveUnit:

https://github.com/massiveinteractive/MassiveUnit

Это платформа модульного тестирования, которую вы можете использовать для проверки своего поведения на нескольких целях. Также есть utest и, возможно, другие.

В настоящее время munit может автоматически запускать тесты для вашего кода на следующих целях:

  • Неко
  • Вспышка 8
  • Флэш 9+
  • Javascript
  • CPP

Существуют инструкции по добавлению поддержки для других целей здесь

(Если вы мало знаете о модульном тестировании — это способ написать множество небольших тестов, чтобы убедиться, что ваша библиотека/код ведет себя так, как ожидается, и идеально подходит для проверки того, что все работает на разных платформах, а также для того, чтобы убедиться, что вы не не ломайте вещи, когда вы меняете свой код.)

person Jason O'Neil    schedule 19.01.2013