如何让Flexunit,FlexMojos和Mockolate一起工作? [英] How do I get Flexunit, FlexMojos and Mockolate to work together?
问题描述
在过去的两天里,我一直在努力让FlexUnit,FlexMojos和Mockolate一起工作,以便我可以在TeamCity中运行测试,但是我一直没有运气.
For the past two days, I've been trying to get get FlexUnit, FlexMojos, and Mockolate to work together so that I can run tests in TeamCity, but I have not been having any luck.
我目前在Teamcity上有一个使用FlexMojos的项目,并且可以使用FlexMojos-flexunit,但是该项目没有使用Mockolate.
I have one project on Teamcity currently that uses FlexMojos and the FlexMojos-flexunit that works, however that project is not using Mockolate.
该项目的pom如下所示:
The pom for that project looks like this:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>CENSOREDt</groupId>
<artifactId>CENSORED</artifactId>
<version>CENSORED</version>
<name>CENSORED</name>
<packaging>swc</packaging>
<properties>
<flex.version>4.1.0.16248</flex.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.language>flex</sonar.language>
<sonar.dynamicanalysis>false</sonar.dynamicanalysis>
</properties>
<dependencies>
<dependency>
CENSORED
<dependency>
<groupId>org.puremvc.as3</groupId>
<artifactId>PureMVC_AS3</artifactId>
<version>2.0.4</version>
<type>swc</type>
</dependency>
<dependency>
<groupId>com.adobe</groupId>
<artifactId>componentsFlashIDE</artifactId>
<type>swc</type>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>fl</groupId>
<artifactId>components</artifactId>
<version>1.0</version>
<type>swc</type>
</dependency>
<dependency>
<groupId>com.greensock</groupId>
<artifactId>greensock</artifactId>
<version>v11</version>
<type>swc</type>
</dependency>
<dependency>
<groupId>caurina.transitions</groupId>
<artifactId>Tweener</artifactId>
<version>1.2</version>
<type>swc</type>
</dependency>
<!-- test-scope dependencies: -->
<dependency>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-unittest-flexunit4</artifactId>
<version>4.1-beta</version>
<type>swc</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>playerglobal</artifactId>
</exclusion>
<exclusion>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>airframework</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-as3</artifactId>
<version>1.1</version>
<type>swc</type>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>artifactory-libs</id>
<name>artifactory-libs-release</name>
<url>http://artifactory/artifactory/libs-release-local</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>artifactory-snapshots</id>
<name>artifactory-libs-snapshots</name>
<url>http://artifactory/artifactory/libs-snapshot-local</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>artifactory-ext</id>
<name>artifactory-ext-release</name>
<url>http://artifactory/artifactory/ext-release-local</url>
</repository>
<repository>
<id>flex-mojos-repository</id>
<name>flex-mojos-repository</name>
<url>http://repository.sonatype.org/content/groups/flexgroup</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>flex-mojos-plugin-repository</id>
<url>http://repository.sonatype.org/content/groups/flexgroup</url>
</pluginRepository>
<pluginRepository>
<id>flexpmd.opensource.adobe</id>
<name>FlexPMD repository on opensource.adobe.com</name>
<url>http://opensource.adobe.com/svn/opensource/flexpmd/maven-repository/release/</url>
</pluginRepository>
</pluginRepositories>
<distributionManagement>
<repository>
<id>artifactory</id>
<name>artifactory-releases</name>
<url>http://artifactory/artifactory/libs-release-local</url>
</repository>
<snapshotRepository>
<id>artifactory</id>
<name>artifactory-snapshots</name>
<url>http://artifactory/artifactory/libs-snapshot-local</url>
</snapshotRepository>
</distributionManagement>
<build>
<finalName>${project.artifactId}</finalName>
<testSourceDirectory>test</testSourceDirectory>
<sourceDirectory>src/</sourceDirectory>
<plugins>
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>4.0-RC2</version>
<extensions>true</extensions>
<dependencies>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>${flex.version}</version>
<type>pom</type>
</dependency>
</dependencies>
<configuration>
<storepass/>
<targetPlayer>10.1</targetPlayer>
<compilerWarnings>
<warn-no-constructor>false</warn-no-constructor>
</compilerWarnings>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
</reporting>
工作正常.但是,当我添加对Mockolate的引用时,由于FlexUnit中的某些类冲突而导致构建失败.
It works fine. When I add a reference to Mockolate however, the build fails because of some sort of conflicting classes in FlexUnit.
我阅读了以下链接,我需要删除引用flexMojos-flexunit,并在pom中提供对FlexUnit4的引用.我做到了但是现在我得到一个错误阅读:
I read on this link here that I need to remove the reference to flexMojos-flexunit and give my own reference to FlexUnit4 in the pom. I did that. However now I get an error reading:
Failed to execute goal org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-RC2:test-compile (default-test-compile) on project slots_client_common: java.lang.reflect.InvocationTargetException: Not found any compatible unit test framework
我当前无法使用的POM看起来像这样:
My current POM which is NOT working looks like this:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.CENSORED.client</groupId>
<artifactId>CENSORED</artifactId>
<version>CENSORED</version>
<name>CENSORED</name>
<packaging>swc</packaging>
<properties>
<flex.version>4.1.0.16248</flex.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.language>flex</sonar.language>
<sonar.dynamicanalysis>false</sonar.dynamicanalysis>
</properties>
<dependencies>
<dependency>
CENSORED
</dependency>
<dependency>
CENSORED
</dependency>
<dependency>
<groupId>org.puremvc.as3</groupId>
<artifactId>PureMVC_AS3</artifactId>
<version>2.0.4</version>
<type>swc</type>
</dependency>
<!-- test-scope dependencies: -->
<dependency>
<groupId>com.adobe.felxunit</groupId>
<artifactId>flexunit</artifactId>
<version>4.1.0-8</version>
<classifier>as3</classifier>
<type>swc</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>playerglobal</artifactId>
</exclusion>
<exclusion>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>airframework</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-as3</artifactId>
<version>1.1</version>
<type>swc</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockolate</groupId>
<artifactId>mockolate</artifactId>
<version>0.12.4</version>
<classifier>as3</classifier>
<type>swc</type>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>artifactory-libs</id>
<name>artifactory-libs-release</name>
<url>http://artifactory/artifactory/libs-release-local</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>artifactory-snapshots</id>
<name>artifactory-libs-snapshots</name>
<url>http://artifactory/artifactory/libs-snapshot-local</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>artifactory-ext</id>
<name>artifactory-ext-release</name>
<url>http://artifactory/artifactory/ext-release-local</url>
</repository>
<repository>
<id>flex-mojos-repository</id>
<name>flex-mojos-repository</name>
<url>http://repository.sonatype.org/content/groups/flexgroup</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>flex-mojos-plugin-repository</id>
<url>http://repository.sonatype.org/content/groups/flexgroup</url>
</pluginRepository>
<pluginRepository>
<id>flexpmd.opensource.adobe</id>
<name>FlexPMD repository on opensource.adobe.com</name>
<url>http://opensource.adobe.com/svn/opensource/flexpmd/maven-repository/release/</url>
</pluginRepository>
</pluginRepositories>
<distributionManagement>
<repository>
<id>artifactory</id>
<name>artifactory-releases</name>
<url>http://artifactory/artifactory/libs-release-local</url>
</repository>
<snapshotRepository>
<id>artifactory</id>
<name>artifactory-snapshots</name>
<url>http://artifactory/artifactory/libs-snapshot-local</url>
</snapshotRepository>
</distributionManagement>
<build>
<finalName>${project.artifactId}</finalName>
<testSourceDirectory>tests</testSourceDirectory>
<sourceDirectory>src/</sourceDirectory>
<plugins>
<plugin>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>4.0-RC2</version>
<extensions>true</extensions>
<dependencies>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>${flex.version}</version>
<type>pom</type>
</dependency>
</dependencies>
<configuration>
<targetPlayer>10.1</targetPlayer>
<compilerWarnings>
<warn-no-constructor>false</warn-no-constructor>
</compilerWarnings>
<storepass/>
</configuration>
</plugin>
</plugins>
</build>
FlexUnit4 swc存在于我的工件中,在尝试构建之前,IntelliJ在Maven中没有警告或错误.
The FlexUnit4 swc exists in my artifactory, and IntelliJ gives me no warnings or errors in the Maven before trying to build.
感谢您的帮助.
推荐答案
感谢Apache的一些优秀人士 Flex开发人员论坛(弗雷德里克·托马斯(FrédéricTHOMAS)和@chrisdutz),我能够得到我的问题的答案:
Thanks to some great folks over at the Apache Flex dev forum (Frédéric THOMAS and @chrisdutz ) I was able to get the answer to my question:
首先,您需要美化SDK 您想使用的,在我的例子中是Flex SDK 4.1A
First, you need to mavenize the SDK you want to use, in my case that was Flex SDK 4.1A
然后,您可以像这样设置pom:
Then, you can set up your pom like this:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>testMaven</groupId>
<artifactId>testMaven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>swf</packaging>
<properties>
<flexmojos.version>6.0.1</flexmojos.version>
<flex.version>4.1.0.16076A</flex.version>
<playerglobal.version>10.1</playerglobal.version>
<flashplayer.version>10.1</flashplayer.version>
<flex.debug>true</flex.debug>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>tests</testSourceDirectory>
<plugins>
<plugin>
<groupId>net.flexmojos.oss</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>
<version>${flexmojos.version}</version>
<extensions>true</extensions>
<configuration>
<storepass/>
<targetPlayer>10.1</targetPlayer>
<debug>${flex.debug}</debug>
<defines>
<property>
<name>CONFIG::debugging</name>
<value>${flex.debug}</value>
</property>
<property>
<name>CONFIG::versionNumber</name>
<value>'${project.version}'</value>
</property>
</defines>
<sourceFile>com/myCompany/main/HelloWorld.as</sourceFile>
</configuration>
<dependencies>
<dependency>
<groupId>com.adobe.flex</groupId>
<artifactId>compiler</artifactId>
<version>${flex.version}</version>
<type>pom</type>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.adobe.flex.framework.themes</groupId>
<artifactId>halo</artifactId>
<version>${flex.version}</version>
<scope>theme</scope>
<type>swc</type>
</dependency>
<dependency>
<groupId>com.adobe.flash.framework</groupId>
<artifactId>playerglobal</artifactId>
<version>${playerglobal.version}</version>
<type>swc</type>
</dependency>
<dependency>
<groupId>com.adobe.flash.framework</groupId>
<artifactId>playerglobal</artifactId>
<version>${playerglobal.version}</version>
<type>rb.swc</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>flash-integration</artifactId>
<version>${flex.version}</version>
<type>swc</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>flex-framework</artifactId>
<version>${flex.version}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.adobe.flex.framework</groupId>
<artifactId>flash-integration</artifactId>
<version>${flex.version}</version>
<type>rb.swc</type>
</dependency>
<dependency>
<groupId>org.flexunit</groupId>
<artifactId>flexunit</artifactId>
<version>4.1.0</version>
<classifier>as3</classifier>
<type>swc</type>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-as3</artifactId>
<version>1.1</version>
<type>swc</type>
</dependency>
<dependency>
<groupId>org.mockolate</groupId>
<artifactId>mockolate</artifactId>
<version>0.12.4</version>
<classifier>as3</classifier>
<type>swc</type>
</dependency>
</dependencies>
<repositories>
<repository>
<id>artifactory-libs</id>
<name>artifactory-libs-release</name>
<url>http://artifactory/artifactory/libs-release-local</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>artifactory-snapshots</id>
<name>artifactory-libs-snapshots</name>
<url>http://artifactory/artifactory/libs-snapshot-local</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>artifactory-ext</id>
<name>artifactory-ext-release</name>
<url>http://artifactory/artifactory/ext-release-local</url>
</repository>
<repository>
<id>flex-mojos-repository</id>
<name>flex-mojos-repository</name>
<url>http://repository.sonatype.org/content/groups/flexgroup</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>flex-mojos-plugin-repository</id>
<url>http://repository.sonatype.org/content/groups/flexgroup</url>
</pluginRepository>
<pluginRepository>
<id>flexpmd.opensource.adobe</id>
<name>FlexPMD repository on opensource.adobe.com</name>
<url>http://opensource.adobe.com/svn/opensource/flexpmd/maven-repository/release/</url>
</pluginRepository>
</pluginRepositories>
这篇关于如何让Flexunit,FlexMojos和Mockolate一起工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!