2013-01-07 27 views
2

我正在使用Flex進行項目工作,直到現在我們正在使用Windows爲需要Flex環境的模塊/工件運行Flex單元測試。由於給定的依賴關係,很難自動化任何事情,因爲在運行這些maven測試時,我必須在linux/windows之間進行交換。在Linux上設置flex單元

我已經努力嘗試使flex單元測試在linux上運行,但還沒有成功[尚未]。這是flex項目中maven clean test -X堆棧跟蹤的一小部分。

[INFO] Flexmojos 3.8 
[INFO] Apache License - Version 2.0 (NO WARRANTY) - See COPYRIGHT file 
[INFO] Running tests /root/trunk/flex-project/flex-surface/flex-surface-common/flex-surface-common-flex/target/test-classes/TestRunner.swf 
[DEBUG] [org.sonatype.flexmojos.test.monitor.AsVmPing] opened server socket on port 13540 
[DEBUG] [org.sonatype.flexmojos.test.monitor.ResultHandler] opened server socket on port 13539 
[DEBUG] [LAUNCHER] ASVmLauncher starting 
[DEBUG] [LAUNCHER] exec: /usr/bin/flashplayer - /root/trunk/flex-project/flex-project-arbeidsflate/flex-surface-common/flex-surface-common-flex/target/test-classes/TestRunner.swf 
[DEBUG] [LAUNCHER] Creating process 
[WARNING] [LAUNCHER] Using xvfb-run to launch headless tests 
[DEBUG] [LAUNCHER] Process created [email protected] 
[DEBUG] [MOJO] launcher RUNNING 
[DEBUG] [MOJO] pinger STARTED 
[DEBUG] [MOJO] resultHandler STARTED 
[DEBUG] [LAUNCHER] Output pumpers ON 
[DEBUG] [LAUNCHER] Waiting for flashplayer termination 
[DEBUG] [LAUNCHER] Flashplayer closed 
[DEBUG] [LAUNCHER] Unexpected return code 1 
[DEBUG] [SYSERR]: mktemp: cannot create temp file /tmp/Xauthority: File exists 
[DEBUG] [MOJO] launcher ERROR 
[DEBUG] [MOJO] pinger STARTED 
[DEBUG] [MOJO] resultHandler STARTED 
[INFO] ------------------------------------------------------------------------ 
[INFO] Tests run: 0, Failures: 0, Errors: 0, Time Elapsed: 0 sec 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 

我需要幫助找出哪裏出了問題。如果你們中的任何一個人知道在linux上運行flex單元測試的其他方法,那麼通過JENKINS/HUDSON,我會非常感激。

+0

您是否運行X客戶端?看起來你是用root運行的,也許如果你和另一個用戶一起工作,它會創建一個更具體的Xauthority。 – poussma

+0

@ ZNK-M是的,正如你所看到的,我使用的是xvfb,並且安裝了xvfb,運行在/ usr/local/bin下,而且flexmojos插件看起來很好,但是還有其他的東西正在發生。我用root運行的原因是因爲我在沙盒測試服務器上,所以不用擔心:-)。我可以嘗試與其他用戶一起運行。 – Moni

+0

是的,也許。我想知道是否由root用戶生成的Xauthority有一個特殊的行爲 – poussma

回答

2

首先,請按照以下站點上的linux部分說明操作:Running unit tests - FlexMojos。下載flashplayer並解壓縮一些適當的位置,並將絕對目錄路徑放入PATH變量中。

下載XVFB運行腳本,並更改​​以下 '科幻'

# If the user did not specify an X authorization file to use, set up a temporary 
# directory to house one. 
if [ -z "$AUTHFILE" ]; then 
    XVFB_RUN_TMPDIR="${TMPDIR:-/tmp}/$PROGNAME.$$" 
    if ! mkdir -p -m 700 "$XVFB_RUN_TMPDIR"; then 
    error "temporary directory $XVFB_RUN_TMPDIR already exists" 
    exit 4 
    fi 
    AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority) 
fi 

# If the user did not specify an X authorization file to use, set up a temporary 
# directory to house one. 
if [ -z "$AUTHFILE" ]; then 
    XVFB_RUN_TMPDIR=$(mktemp -d) 
    if ! mkdir -p -m 700 "$XVFB_RUN_TMPDIR"; then 
    error "temporary directory $XVFB_RUN_TMPDIR already exists" 
    exit 4 
    fi 
    AUTHFILE=$(mktemp "$XVFB_RUN_TMPDIR/Xauthority") 
fi 

我解決我的問題,希望你會喜歡。 祝你好運。