2013-06-03 28 views
8

Tất cả các ví dụ về cách sử dụng Robolectric tôi có thể tìm thấy có vẻ là dựa trên Maven. Có ai không sử dụng Maven không? Nếu vậy tôi thực sự muốn hiểu thiết lập dự án IntelliJ của bạn.Có ai ngoài kia sử dụng Robolectric mà không có Maven trên IntelliJ không?

Sau khi đọc bài đăng này

android-unit-test-approaches

có vẻ như hợp lý để có một cách tiếp cận tầng cho đơn vị testig dự án android với sự kết hợp của junit tinh khiết, robolectric & thử nghiệm kiểm tra khuôn khổ android. Nếu bất cứ ai đang làm điều này có hoặc không có Maven tôi rất muốn hiểu một chút về cách bạn cấu hình dự án của bạn trong IntelliJ.

Tôi đoán tôi sẽ cần nhiều dự án/mô-đun. Bất kỳ sự khôn ngoan nào về điều này đều được biết ơn.

Trả lời

6

Maven là một công cụ tuyệt vời để làm cho mọi thứ thuận tiện hơn. Nếu bạn vẫn đang tìm kiếm một cách để cài đặt Robolectric bên trong IntelliJ KHÔNG Maven, hãy làm theo cùng:

  1. Tải Robolectric: https://oss.sonatype.org/index.html#nexus-search;quick~robolectric tải về các tập tin mới nhất jar-với-dependencies.jar. Tải về nó và đặt nó trong libs của bạn/thư mục của dự án ứng dụng của bạn

  2. thiết lập nguồn ứng dụng của bạn với cấu trúc tập tin sau (đây là một phương pháp được sử dụng rộng rãi các thiết lập thư mục của bạn lên để thử nghiệm Robolectric)

    ProjectName/ 
        src/ 
         main/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaClassesHere.java 
         test/ 
          java/ 
            com/ 
             example/ 
               packageName/ 
                 javaTestClassesHere.java 
    
  3. Trong Intellij, chuyển đến Tệp> Cấu trúc dự án. Sau đó, ở cột bên trái, chọn "Mô-đun".
    Trong cột ở giữa, hãy chọn mô-đun ứng dụng của bạn.
    Sau đó, trong cột bên phải, hãy nhấp vào tab "Nguồn".
    Bây giờ trong trình duyệt tệp, tìm thư mục "src" và mở rộng nó. Sau đó mở rộng cả thư mục "chính" và "test" của bạn bên trong của src. Nhấp vào thư mục "java" bên dưới "chính" sau đó về phía trên cùng, nhấp vào nút "Nguồn" màu xanh lam. Sau đó, đối với thư mục "java" trong "kiểm tra", về phía trên cùng, hãy nhấp vào nút "Nguồn thử nghiệm".
    Ngoài ra, nhấp vào thư mục chính "src" và chọn nút nguồn màu xanh lam để làm cho nó không còn màu xanh nữa.

  4. Bây giờ vẫn còn trong cửa sổ cấu trúc dự án, hãy chuyển đến cột bên tay trái và nhấp vào "Thư viện".
    Nếu bạn thấy một mục nhập cho robolectric ở cột giữa rồi, hãy nhấp vào nó rồi nhấp vào dấu "-" màu đỏ ở đầu cột giữa.
    Bây giờ hãy nhấp vào dấu "+" màu xanh lá cây phía trên cột giữa và chọn "Java". Duyệt đến bình đựng thuốc bạn đã tải xuống ở bước 1. (nên có trong thư mục libs/của dự án của bạn.
    Một cửa sổ sẽ hiện ra hỏi bạn những mô-đun nào bạn muốn sử dụng robolectric. Chọn tất cả các mô-đun sẽ được sử dụng robolectric và kích oK. Bây giờ hãy nhấp Apply và oK để thoát khỏi của cấu trúc dự án.

Bây giờ bạn đều thiết lập để thử nghiệm với robolectric!

+0

Maven là một công cụ quá phức tạp để phát triển Di động. Nó có thể rất tốt và hữu ích cho việc phát triển phía máy chủ nhưng không phải để phát triển ứng dụng di động đơn giản. Ant hoạt động tốt nhất và được Android SDK hỗ trợ. – Sileria

+1

@Mobistry Tôi đã có trải nghiệm ngược lại. Maven (cùng với Nexus) đã giúp đội của tôi rất nhiều. Quản lý phụ thuộc là quan trọng đối với bất kỳ dự án phần mềm nào, đặc biệt là khi nó bắt đầu trở nên phức tạp. –

+0

Có cách nào để chạy thử nghiệm Robolectric trên Eclipse (Juno) ** mà không có ** Maven không? Tôi đã không có bất kỳ may mắn với các bước bắt đầu nhanh chóng trên trang web robolectric. – JaKXz

3

Tôi đoán rằng lý do mà hầu hết mọi người đều sử dụng Roboelectric đang sử dụng Maven là hầu hết những người bận tâm sử dụng Roboelectric đều nghiêm túc về thử nghiệm của họ.

Vì chúng có động lực để thử nghiệm một cách nghiêm túc, chúng có khả năng bao gồm các bài kiểm tra của chúng trong một bản dựng tự động, thường trong máy chủ Continuous Integration (CI), chẳng hạn như Jenkins hoặc Hudson.

Khi bạn muốn thực hiện kiểm tra tự động, bạn cần một bản dựng dòng lệnh tốt. Gradle là công cụ xây dựng dòng lệnh chính thức hoàn toàn mới cho Android, nhưng là một công cụ hoàn toàn mới, vẫn là một công việc đang được tiến hành và chưa được áp dụng rộng rãi. Công cụ đã thử và đúng là Maven.

Rất nhiều người thích ghét Maven, nhưng nó hoàn thành công việc và đánh bại Ant một dặm. Vì vậy, nó có thể không phải là một ý tưởng tồi để sử dụng Maven (hoặc Gradle) - nó sẽ cung cấp cho bạn rất nhiều bang cho buck thử nghiệm của bạn hơn là chỉ chạy thử nghiệm của bạn trong IDE của bạn. Các tính năng chính:

+0

Cảm ơn vì điều đó. Tôi muốn thiết lập CI cho dự án của tôi và bạn đã giúp tôi giải quyết trên Maven cho bây giờ. Tôi đã nghe một kẻ quấy rối Maven, những trang web khá hợp lý xây dựng thời gian dài và các vấn đề phụ thuộc phức tạp vì lý do không sử dụng nó. Tôi không có chuyên gia trong việc xây dựng Java và dường như Maven cuối cùng có thể bị ép buộc làm những gì bạn muốn. –

+0

Maven không hoàn toàn bị lỗi vì thời gian xây dựng lâu dài và các vấn đề phụ thuộc phức tạp - các nhà phát triển phần mềm đã chọn sử dụng một trang web phức tạp gồm các thư viện phụ thuộc phụ trách việc đó. Maven chỉ đơn giản là một công cụ có thể được sử dụng để quản lý những phụ thuộc đó. Nhưng những kẻ thù ghét Maven sẽ ghét ... Dù sao, công cụ xây dựng Gradle mới sẽ có thể quản lý những người phụ thuộc đó, và hy vọng sẽ làm tốt hơn nữa. – GreyBeardedGeek

2

tôi là một con chim sớm bầu trời Robolectric và bắt đầu với việc không đi theo con đường Maven. Động lực chính của tôi là thử khung và vì vậy r đưa ra suy nghĩ thứ hai về việc sử dụng Maven. Tôi đã ghi lại các bài học của mình tại:
http://dasherize.blogspot.in/2013/04/robolectric-beginning.html
và bạn có thể tìm thấy hướng dẫn thiết lập here.

Lưu ý: Nó liên quan đến Robolectric 1.x. Nhưng nó không nên thay đổi nhiều với sự thay đổi trong phiên bản.

Đối với this answer Tôi hoàn toàn đồng ý với @GreyBeardedGeek. Bạn phải giải quyết với Maven nếu bạn muốn thiết lập CI.

Các vấn đề liên quan