JavaScript позволяет функциям рассматриваться как объекты - можно добавить свойство к функции. Как дела реверс, и добавляет функцию к объекту?
Вы, кажется, немного смущены. Функции, в JavaScript, объекты. И переменные переменная . Вы не ожидали бы, что это будет работать:
var three = 3;
three = 4;
assert(three === 3);
... итак, почему Вы ожидали бы, что присвоение функции к Вашей переменной так или иначе сохранит свое предыдущее значение? Возможно, некоторые аннотации разъяснят вещи для Вас:
// assigns an anonymous function to the variable "foo"
var foo = function() { return 1; };
// assigns a string to the property "baz" on the object
// referenced by "foo" (which, in this case, happens to be a function)
foo.baz = "qqqq";
Существует открытая проблема для этих s, поэтому нет элегантного способа сделать это.
Было бы гораздо проще выбрать фреймворк. и придерживайтесь его.
Изменить: Мой предыдущий ответ не работает, потому что вы не можете указать зависимости при выполнении. Я пробовал несколько подходов, но лучшее, что я могу сделать, это создать профиль для зависимости TestNG, чтобы вы могли переключаться между тестированием TestNG и JUnit, похоже, нет средства для запуска тестов TestNG и Junit 4 .
Еще одно замечание: вы можете запускать тесты JUnit из TestNG , но я думаю, что это работает только для тестов JUnit 3.
У меня есть лучшее решение .
Идея состоит в том, чтобы создать два исполнения maven-surefire-plugin
, одно для JUnit, другое для TestNG. Вы можете отключить один из TestNG или JUnit для каждого выполнения, указав несуществующий junitArtifactName
или testNGArtifactName
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<testNGArtifactName>none:none</testNGArtifactName>
</configuration>
</execution>
<execution>
<id>test-testng</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<junitArtifactName>none:none</junitArtifactName>
</configuration>
</execution>
</executions>
</plugin>