Tôi đang làm việc trên một dự án bao gồm cả hai dự án .NET code và android java. Chúng tôi đang cố gắng để có được cả hai loại dự án làm việc trong một môi trường TeamCity.Xây dựng các dự án Android với TeamCity - kiểm tra và các vấn đề về bảo hiểm mã
Dự án .NET đang được thử nghiệm thông qua một số dự án NUnit và chúng tôi sử dụng DotCover để tạo báo cáo vùng phủ sóng và tất cả dường như đều sưng lên. Bây giờ, các dự án android/java đang được xây dựng bằng cách sử dụng ant runners, và chúng tôi đã có một số build-scripts cho cả việc sản xuất và cho các dự án thử nghiệm, và vấn đề là, tạo ra các báo cáo bảo hiểm java.
Chúng tôi đã tạo một bước xây dựng với mục tiêu kiến sau:
clean emma debug install test
Các bước xây dựng được thiết lập để có "Emma bảo hiểm Á hậu" kích hoạt (với tùy chọn "Include file nguồn trong các dữ liệu bảo hiểm" đã kiểm tra).
Xảy ra lỗi khi chạy bước xây dựng, nêu rõ đoạn mã sau trong đoạn nhật ký (đính kèm tệp nhật ký đầy đủ). Một vấn đề quan trọng khác là thử nghiệm đơn vị android/java không xuất hiện trong thống kê tổng thể của bản dựng.
Đây là snippit log:
[16:37:52]: [aapt] Generating resource IDs...
[16:37:55]: [subant] -pre-compile
[16:37:55]: [subant] -compile (1s)
[16:37:55]: [-compile] do-only-if-manifest-hasCode (1s)
[16:37:55]: [do-only-if-manifest-hasCode] sequential (1s)
[16:37:55]: [sequential] if (1s)
[16:37:55]: [if] Adding debug=true parameter to javac task
[16:37:55]: [if] javac
[16:37:55]: [if] Compiling 1 source file to C:\BuildAgent\work\c588ac2d935670cb\MyAndroidProject\bin\classes
[16:37:55]: [if] EMMA: Instrumenting classes
[16:37:55]: [EMMA: Instrumenting classes] EMMA commandline: [-ix, -*Test*, -cp, C:\BuildAgent\work\c588ac2d935670cb\MyAndroidProject\bin\classes, -m, overwrite]
[16:37:55]: [EMMA: Instrumenting classes] EMMA: processing instrumentation path ...
[16:37:56]: [EMMA: Instrumenting classes] EMMA: instrumentation path processed in 265 ms
[16:37:56]: [EMMA: Instrumenting classes] EMMA: [167 class(es) instrumented, 0 resource(s) copied]
[16:37:56]: [EMMA: Instrumenting classes] EMMA: metadata merged into [C:\BuildAgent\work\c588ac2d935670cb\coverage.em] {in 15 ms}
[16:37:56]: [if] if
[16:37:56]: [if] echo
[16:37:56]: [echo] Instrumenting classes from C:\BuildAgent\work\c588ac2d935670cb\MyAndroidProject\bin/classes...
[16:37:56]: [if] emma
[16:37:56]: [emma] com.vladium.emma.EMMARuntimeException: [OUT_IO_FAILURE] exception occurred while writing output file [C:\BuildAgent\work\c588ac2d935670cb\coverage.em]:
[16:37:56]: [do-only-if-manifest-hasCode] The following error occurred while executing this line: C:\Android\android-sdk\tools\ant\build.xml:655: com.vladium.emma.EMMARuntimeException: [OUT_IO_FAILURE] exception occurred while writing output file [C:\BuildAgent\work\c588ac2d935670cb\coverage.em]:
[16:37:56]: [subant] The following error occurred while executing this line: C:\Android\android-sdk\tools\ant\build.xml:602: The following error occurred while executing this line: C:\Android\android-sdk\tools\ant\build.xml:655: com.vladium.emma.EMMARuntimeException: [OUT_IO_FAILURE] exception occurred while writing output file [C:\BuildAgent\work\c588ac2d935670cb\coverage.em]:
[16:37:56]: [Step 1/18] EMMA: Create Report (4s)
[16:38:00]: [EMMA: Create Report] Unable to find C:\BuildAgent\work\c588ac2d935670cb\coverage.ec, cannot create EMMA report
[16:38:00]: [Step 1/18] Process exited with code 1
[16:38:00]: [Step 1/18] Ant output:
[16:38:00]: [Step 1/18] at java.lang.reflect.Method.invoke(Method.java:601)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Task.perform(Task.java:348)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
[16:38:00]: [Step 1/18] at com.android.ant.IfElseTask.execute(IfElseTask.java:120)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[16:38:00]: [Step 1/18] at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
[16:38:00]: [Step 1/18] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[16:38:00]: [Step 1/18] at java.lang.reflect.Method.invoke(Method.java:601)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Task.perform(Task.java:348)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Target.execute(Target.java:390)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Target.performTasks(Target.java:411)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Main.runBuild(Main.java:809)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.Main.startAnt(Main.java:217)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[16:38:00]: [Step 1/18] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
[16:38:00]: [Step 1/18] Caused by: java.io.IOException: cannot merge new data into [C:\BuildAgent\work\c588ac2d935670cb\coverage.em]: created by another EMMA version [0.0.0]
[16:38:00]: [Step 1/18] at com.vladium.emma.data.DataFactory.persist(DataFactory.java:593)
[16:38:00]: [Step 1/18] at com.vladium.emma.data.DataFactory.persist(DataFactory.java:71)
[16:38:00]: [Step 1/18] at com.vladium.emma.instr.InstrProcessorST._run(InstrProcessorST.java:753)
[16:38:00]: [Step 1/18] ... 71 more
[16:38:00]: [Step 1/18] Total time: 6 seconds
[16:38:00]: [Step 1/18] Publishing artifacts
[16:38:00]: [Publishing artifacts] Paths to publish: [C:\BuildAgent\work\c588ac2d935670cb\coverage.ec, C:\BuildAgent\work\c588ac2d935670cb\coverage.em, C:\BuildAgent\work\c588ac2d935670cb\coverage.txt, C:\BuildAgent\work\c588ac2d935670cb\coverage\coverage.zip]
[16:38:00]: [Publishing artifacts] Artifacts path coverage.ec not found
[16:38:00]: [Publishing artifacts] Artifacts path coverage.txt not found
[16:38:00]: [Publishing artifacts] Artifacts path coverage/coverage.zip not found
[16:38:00]: [Publishing artifacts] Sending files
[16:38:00]: [Step 1/18] Failed to extract Emma coverage statistics from the coverage.txt, due to error: java.io.FileNotFoundException: C:\BuildAgent\work\c588ac2d935670cb\coverage.txt (The system cannot find the file specified)
[16:38:00]: [Step 1/18] Step Test Smart Client - Unit tests (Ant) failed
Có ai có một ý tưởng những gì các vấn đề có thể được?
Nhân tiện, khi tôi chạy các mục tiêu trực tiếp từ dòng lệnh, các báo cáo được tạo mà không gặp bất kỳ sự cố nào.
Kính trọng, mỗi
Bạn đã thật tuyệt vời hôm nay! – Argyle
Thật khó để hiểu được điều đó, tôi không muốn bất kỳ ai khác chia sẻ số phận của tôi :) – Rosomack
Thật tuyệt vời, điều này rất hữu ích và hoạt động hoàn hảo: Tôi sao chép EmmaTranscoder.class vào cùng thư mục với các tệp tin bảo hiểm và thực thi 'java -cp. Vùng phủ sóng của EmmaTranscoder. [Ec | em] ' – friederbluemle