Mocha: Opsi mengecualikan file tertentu dengan pola saat menguji secara rekursif

Dibuat pada 4 Mar 2015  ·  71Komentar  ·  Sumber: mochajs/mocha

Saya ingin kemampuan untuk memberikan pola pengecualian sehingga saya hanya dapat menguji file yang cocok dengan pola file pengujian saya. Ini akan memungkinkan file data untuk berdampingan dengan file pengujian selama mereka mengikuti pola yang wajar.

Saya pikir ini hanya akan memberikan opsi yang menetapkan opsi ignore di glob .

Pikiran? Saya bisa membuat PR dengan sangat cepat jika Anda mau.

feature good-first-issue help wanted usability

Komentar yang paling membantu

image

Semua 71 komentar

Anda mungkin lebih baik membuat dua direktori paralel, satu untuk pengujian dan yang lainnya
untuk file data. Itulah yang saya lakukan.
Am 04.03.2015 15:52 schrieb "Kyle P Davis" [email protected] :

Saya ingin kemampuan untuk memberikan pola pengecualian agar saya bisa
hanya file pengujian yang cocok dengan pola file pengujian saya. Ini akan memungkinkan data
file untuk hidup berdampingan dengan file uji selama mereka mengikuti dengan wajar
pola.

Saya pikir ini hanya akan memberikan opsi yang menetapkan opsi abaikan
di glob.

Pikiran? Saya bisa membuat PR dengan sangat cepat jika Anda mau.

-
Balas email ini secara langsung atau lihat di GitHub
https://github.com/mochajs/mocha/issues/1577.

Saya bisa (dan pernah melakukannya di masa lalu) tetapi saya lebih suka tidak melakukannya lagi sekarang karena saya telah menyadari bahwa pengabaian glob ada di sana.

Seharusnya cukup mudah untuk menambahkan argumen baris perintah untuk menyetel opsi abaikan glob. Saya hanya ingin mendapatkan pemikiran dan berdiskusi sedikit dulu.

Adakah keberatan saya membuat PR untuk ini?

Saya hanya membutuhkan ini juga dan terkejut melihat moka belum memilikinya. Saya pikir itu akan menjadi tambahan yang bagus. Kami memiliki "testApp" di dalam folder uji kami yang kami gunakan khusus untuk pengujian. Kami tidak ingin mocha mencoba menjalankan tes di dalam folder itu. Alangkah baiknya jika hanya menambahkan pengecualian ke file mocha.opts kami untuk mengecualikan jalur tertentu daripada harus secara eksplisit menyertakan semua sub-folder pengujian lain yang kami miliki.

Meskipun kami dapat memindahkan testApp, itu benar-benar tidak muat di tempat lain di repo dan jalur relatifnya ke file tertentu di folder pengujian.

Ini saya pikir akan menjadi tambahan yang bagus. Tentu tidak kritis, tapi membantu.

@KylePDavis @toddbluhm

Jika saya membutuhkan ini, saya pikir saya mungkin akan melakukannya

$ mocha $(find test/ ! -path '*testApp*')

Jadi saya tidak terlalu senang dengan ide itu. Saya agak ragu tentang keberadaan flag recursive , karena hal yang sama dapat dicapai dengan perintah shell, Makefile , Gruntfile.js , gulpfile.js , dll., Dll.

Menurut saya @boneskull adalah poin yang bagus - ini sudah dapat dicapai dengan berbagai cara. Dan itu tidak termasuk fakta bahwa Anda dapat menyusun direktori Anda untuk menghindari ini sama sekali. Misalnya, diberikan struktur ini:

$ tree .
.
└── spec
    ├── fixtures
    ├── integration
    └── unit

4 directories, 0 files

Anda baru saja memperbarui package.json Anda sehingga Anda dapat menjalankan npm test

  "scripts": {
    "test": "mocha spec/unit spec/integration"
  }

Atau dengan struktur seperti berikut:

$ tree .
.
└── src
    └── models
        ├── user.js
        └── userSpec.js

2 directories, 2 files

Anda dapat menjalankan spesifikasi dengan cara yang sama seperti contoh @boneskull (ini hanya akan menjalankan file yang berisi Spec )

  "scripts": {
    "test": "mocha $(find src -name '*Spec.js')"
  }

Edit: Tetap :)

@danielstjules Saya pikir itu akan benar-benar mengenai dir manapun dengan Spec dalam nama. Mungkin Anda ingin -name '*.spec.js'

Yup, kamu benar! Brainfart. Terima kasih telah menunjukkannya.

Perintah tetap untuk contoh:

  "scripts": {
    "test": "mocha $(find src -name '*Spec.js')"
  }

Saya rasa masih ada kasus penggunaan yang valid untuk fitur ini: Saya cenderung mengelompokkan file saya berdasarkan fitur, jadi setiap file pengujian berada di sebelah file yang berisi logika yang mereka uji. Penamaan file uji coba secara konsisten bekerja dengan argumen file atau grep tapi saya ingin mengabaikan hal-hal seperti node_modules secara eksplisit.

Bagi siapa pun yang mencari - gulp-mocha dapat mencapai ini, saya tidak suka memasukkan gulp mana saya tidak perlu melakukannya.

Saya ingin meluangkan waktu sejenak dan memberi ide ini +1. Tidak seperti proyek JavaScript pada umumnya, saya suka mengikuti cara GO melakukan pengujian unit dan saya menyertakan file spesifikasi di samping setiap file yang diuji. Misalnya direktori di salah satu proyek saya mungkin terlihat seperti berikut:

main.js
main.spec.js
utilities.js
utilities.spec.js

Saya menemukan jenis organisasi ini membuatnya jauh lebih mudah untuk menemukan pengujian versus menggali ke dalam satu direktori file pengujian; Anda selalu mengharapkan pengujian berada tepat di sebelah file yang diuji dan skrip build saya membuat semua file .spec.js keluar dalam versi yang diterapkan.

Karena tata letak non-standar saya, yang ingin saya lakukan adalah menjalankan semua pengujian unit dengan semua folder saya tidak termasuk direktori node_modules.

Saya tidak memiliki kotak Windows di dekat saya saat ini, tetapi saya tidak yakin apakah sintaks find itu akan berfungsi di Windows atau tidak; opsi pengecualian akan jauh lebih intuitif menurut saya. Ditambah hampir semua kerangka pengujian unit menyertakan cara untuk mengabaikan file sehingga paritas akan bagus.

Hai, semua pengujian saya mendukung format *.test.js . Semuanya ada di direktori tests . Saat ini saya memiliki beberapa pengujian yang ingin saya kecualikan, dan masih mempertahankan jalur default untuk mocha yaitu ./test/**/*.js . Bagaimana aku melakukan itu?

Membuat dua direktori terpisah tidak akan berfungsi di sini, dan Anda harus setuju bahwa memindahkan pengujian antar direktori akan menimbulkan banyak gangguan di VCS.

@calebthebrewer Syukurlah saya menggunakan

+1 @calebthebrewer

Angular 2.0 dan Polymer membuat saya dalam mode komponen jadi saya setuju dengan @KrisSiegel. Menjaga semua kode Anda dalam bundel menjaga hierarki file tetap bersih, modular, dan mudah dipelihara.

Apakah ada masalah yang dapat diperkirakan untuk memuat pengujian menggunakan pustaka q promise dengan cara seperti ini:

import q from 'q';

import authRouterTest from '../app/routes/_authentication.router.e2e.js';

import productRouterTest from '../app/routes/_product.router.e2e.js';

import productModelTest from '../app/models/product.model.spec.js';

// Dynamically constructed sequence of functions
let funcs = [ productModelTest(), authRouterTest(), productRouterTest() ];

// This function takes an array of promise-producing functions and
// runs them sequentially.
let execTests = () => {

    let result = q();

    funcs.forEach((f) => {

        result = result.then(f);
    });

    return result;
};

// Execute tests
execTests();

Dengan cara ini Anda dapat mengimpor file Anda dari mana saja dan hanya memiliki satu file uji di test/ .

Anda dapat menyelesaikan janji dalam blok pengujian terakhir dan menyelesaikan setiap pengujian seperti ini

import q from 'q'

export default () => {

    let Q = q.defer();

    describe('something', () => {

        it('should', (done) => {

            ...
        });
    });

    describe('something', () => {

        it('should', (done) => {

            ...
        });

        it('should', (done) => {

            ...

            Q.resolve('test complete');
        });
    });

    return Q.promise;
};

Tampaknya berfungsi cukup baik, kecuali ada sesuatu yang tidak saya pertimbangkan.

Kita masih harus mengabaikan glob. Menggunakan perintah bash bukanlah solusi lintas platform.

+1

Saya benar-benar ingin mengecualikan node_modules . Exclusion sepertinya pendamping yang cukup berguna untuk recursive .

@godspeedelbow Mengapa direktori tertentu itu perlu diabaikan secara eksplisit? Saya biasanya tidak mendengar tentang node_modules berada di direktori pengujian.

FWIW, saya benar-benar bisa menggunakan ini juga. Saya punya beberapa proyek di mana skala tes jauh lebih banyak daripada perpustakaan itu sendiri, dan ini akan memungkinkan saya untuk mengaturnya dengan lebih baik (perlengkapan termasuk dalam direktori uji IMHO).

Mengabaikan node_modules menjadi penting ketika Anda melakukan sesuatu yang tidak terduga (seperti saya di mana saya menyimpan file spesifikasi di sebelah file yang diuji versus menyimpannya dalam satu folder, jauh dari kode yang diuji) atau jika Anda mau untuk menjalankan pengujian unit terhadap proyek utama dan beberapa proyek yang disertakan (mungkin itu pustaka internal, bukan di repo npm, yang ingin Anda uji) tetapi Anda tidak ingin menjalankan pengujian unit dalam dependensinya sendiri .

Masalah ini telah ada hampir setahun penuh sekarang jadi saya tidak punya banyak harapan untuk diimplementasikan. Menurut pendapat saya, penting untuk diterapkan karena penyelesaiannya memerlukan perintah terminal khusus platform atau Anda secara eksplisit menentukan pola untuk setiap direktori yang ingin Anda uji (jadi direktori tambahan perlu ditambahkan ke skrip pengujian). Saya akan bercabang dan melakukannya sendiri tetapi menggunakan metode hacky untuk menentukan setiap direktori dan pola lebih mudah daripada menemukan waktu untuk menerapkannya ke dalam mocha.

@KrisSiegel Anda selalu bisa mendapatkan src/**/*.js dan src/**/*.spec.js . Saya melihat itu lebih sering di proyek Go dan Rust daripada memulai di root proyek. Faktanya, yang terakhir ini relatif jarang.

Meskipun saya pikir mereka hanya menunggu seseorang untuk meluangkan waktu untuk melakukannya sendiri. Ini tidak tampak seperti tambalan yang sulit untuk dibuat (kecuali jika logika itu adalah kekacauan mesin negara kode spaghetti).

Saya tidak terdorong untuk melakukan ini secara pribadi karena saya sebenarnya sedang mengerjakan kerangka pengujian saya sendiri, dimaksudkan untuk menjadi alternatif lengkap untuk Mocha, Jasmine, Tape, dll, meskipun lebih sederhana dan lebih kuat pada intinya. Ini masih terlalu banyak pekerjaan yang sedang berlangsung bahkan untuk proyek mainan ATM.

Saya menggunakan Mocha untuk mem-bootstrap kerangka secara efektif. Saya menggunakan Chai pada awalnya untuk pernyataan sampai saya menstabilkannya (mereka praktis terkunci API sekarang, karena saya menggunakan pernyataan kerangka kerja untuk menguji dirinya sendiri).

Ya itu solusinya. Saya hanya tidak melihat banyak proyek JavaScript terstruktur seperti itu meskipun hal yang sama dapat dikatakan tentang memasangkan file spesifikasi dan sumber juga. Saya pada dasarnya menggunakan pola itu meskipun ketika saya datang ke proyek yang sudah cukup besar dengan sistem pembuatan khusus mereka sendiri, tidak selalu mudah untuk mengubahnya.

Kecualikan adalah pola yang cukup mendasar yang dimiliki banyak utilitas. Saya pikir mocha membutuhkannya :). Meskipun saya kira kesan saya, karena masalah ini ditutup berdasarkan solusi khusus platform, itu tidak diinginkan versus menunggu tambalan. Jika ini adalah sesuatu yang benar-benar diinginkan oleh orang-orang moka maka jika tidak dilakukan dalam beberapa minggu saya pasti bisa membuat tambalan.

@KrisSiegel Saya cukup yakin bahwa jika seseorang benar-benar mengeluarkan sebuah tambalan, tambalan itu mungkin akan tergabung, selama tambalan itu tidak melibatkan sintaks khusus yang tidak intuitif atau tanda tambahan. FWIW, belum ada PR untuk _this_, dan alasan masalah ini ditutup cukup lemah jika Anda menganggap platform-dependent . Dan saya tidak melihat banyak pengguna Windows yang bersedia menginstal GNU find hanya untuk menjalankan beberapa tes.

Ini mungkin ditutup, tetapi situasi serupa sudah terjadi pada Node dengan pekerja Web , meskipun implementasi Node akan sedikit menyimpang ( masalah tertutup , PR sedang berlangsung ).

1 untuk apa nilainya. Proyek yang saya buat tidak memerlukan folder app atau src , tetapi memiliki jumlah variabel dari folder bernama dengan implementasi antarmuka yang berbeda. Saya juga ingin agar pengujian saya dibundel untuk setiap antarmuka, dan tidak dipaksa untuk menggunakan satu folder untuk pengujian.

Mampu menentukan file untuk diabaikan dengan .mochaignore atau opsi lain akan ideal, karena dengan cara itu saya bisa menjalankannya dengan **/*.spec.js glob dan tidak khawatir itu mungkin termasuk tes dari node_modules folder.

Hampir semua alat build lain mengizinkan ini, kami memiliki .npmignore , .gitignore , .jshintignore , dan jscs menyediakan opsi untuk mengkonfigurasinya melalui .jscsrc . Akan berguna jika Mocha mendukungnya juga, karena semakin banyak orang yang beralih ke komponen / fitur file dan organisasi folder, menjauh dari pendekatan laci kaus kaki.

@isiahmeadows seperti yang disebutkan orang lain, saya terjebak dengan struktur folder yang tidak dapat saya ubah dengan mudah, oleh karena itu services/ , routes/ , dll. berada di root proyek seperti node_modules adalah. Saya terinspirasi untuk meletakkan file uji di samping file yang mereka uji. Ini bekerja dengan sangat baik, tetapi saya memerlukan alat ketiga (baik itu baris perintah, atau teguk, atau yang lainnya) untuk mengecualikan node_modules sehingga hanya pengujian saya sendiri yang diuji.

Saya ingin menerapkannya sendiri di mocha, jika saya tahu harus mulai dari mana :)

@godelbow @adambaynki Solusi sementara :)

  "scripts": {
    "test": "mocha $(find . -name '*.spec.js' ! -ipath '*node_modules*')"
  }

Hai @danielstjules terima kasih! Sudah mencobanya, tetapi karena alasan tertentu find . -name '*.spec.js' ! -ipath '*node_modules*' hanya menemukan satu file uji.

Apakah Anda memperbarui '*.spec.js' agar sesuai dengan pola yang diikuti pengujian Anda? Misalnya untuk mencocokkan file _all_ js, Anda akan menggunakan:

  "scripts": {
    "test": "mocha $(find . -name '*.js' ! -ipath '*node_modules*')"
  }

@danielstjules cheers, tapi itu tidak akan berhasil di windows saya percaya, dan sementara untuk aplikasi ini itu bukan masalah, saya ragu untuk memasukkannya.

Sementara itu, saya terpaksa memindahkan kode aplikasi dan pengujian ke subfolder app sehingga saya dapat menargetkan folder itu untuk pengujian dan tidak khawatir tentang node_modules atau folder lain.

@danielstjules ya, semua file pengujian dalam format *.spec.js . Untuk beberapa alasan itu tidak berfungsi sebelumnya, tetapi sekarang ketika itu berhasil tanpa masalah. Terima kasih untuk * NIX ini.

Saya ingin melihat ini dilakukan untuk jurusan yang akan datang; secara khusus mendukung .mochaignore tampaknya masuk akal bagi saya

@boneskull Terima kasih, itu bagus.

Untuk rilis utama berikutnya, apakah Anda juga akan mempertimbangkan penerapan yang lebih "standar" .mocharc untuk meneruskan opsi, yang dapat diletakkan di root proyek, daripada harus menggunakan mocha.opts di folder test ?

Itu akan membuat konfigurasi Mocha jauh lebih mudah, dan sejalan dengan cara melakukannya dengan alat lain di luar sana. Plus, itu tidak akan memaksa kita untuk memiliki folder test hanya untuk mocha.opts . (Kami menempatkan semua pengujian kami di samping modul yang mereka uji).

@adambzki . Saya bukan penggemar mocha.opts

@adambuczynski komentar yang bagus. Saya setuju, saya juga ingin memiliki file opsi standar .mocharc, saya juga tidak lagi menggunakan direktori pengujian, karena sangat menyenangkan untuk menyimpan pengujian di sebelah kode.

+1, menurut saya pengecualian sangat dibutuhkan.

@adambuczynski @boneskull Dokumentasi menunjukkan bahwa Anda dapat menggunakan --opts untuk menentukan jalur apa pun ke file opts Anda, meskipun tidak memberikan contoh apa pun. Saya menggunakan ini dalam proyek saya saat ini dan dapat mengonfirmasi bahwa ini berfungsi sebagai mocha --opts .mocharc

Terima kasih @GRUBES. Pada akhirnya, saya tetap menggunakan folder test karena saya menempatkan pembantu penyiapan pengujian saya di sana juga, tetapi ada baiknya mengetahui hal itu mungkin.

Glob memiliki opsi abaikan, jadi seharusnya tidak menjadi masalah besar hanya dengan menambahkan opsi pengecualian dan meneruskannya ke mengabaikan glob.

abaikan Tambahkan pola atau larik pola bola untuk mengecualikan kecocokan. Catatan: pola abaikan selalu dalam mode titik: benar , terlepas dari pengaturan lainnya.

Saya tidak yakin mengapa ini membutuhkan waktu lebih dari satu tahun. :-)

@ inf3rno BTW, ini mungkin sudah diselesaikan jauh lebih awal seandainya seseorang benar-benar duduk dan menulis tambalannya.

@isiahmeadows Ye, tapi itu bukan aku. : D

Jadi apakah ini masih membutuhkan PR? Saya akan dengan senang hati menambahkan ini, karena saya lebih suka menggunakan colocation file uji daripada beberapa direktori untuk test dan test-integration

2036, yang pada dasarnya untuk hal umum yang sama hanya file daripada opsi baris perintah, memiliki PR # 2173

Mungkin menyenangkan menambahkan opsi seperti --exclude .

Atau dukung sesuatu seperti mocha test/*.js !test/_*.js

Figured Glob out: mocha "./{,!(node_modules)/**/}*.test.js" untuk mendapatkan semua file * .test.js kecuali di node_modules, dan mocha "./test/**/!(notThisOne).js" untuk mendapatkan semuanya di folder uji dan subfolder kecuali notThisOne.js

Lihat juga:
https://github.com/isaacs/node-glob#glob -primer
https://github.com/isaacs/node-glob/issues/62

@Cantik_bugil

Saat berjalan di terminal saya dapatkan

mocha "./{,!(node_modules)/**/}*.test.js"
-bash: !: event not found

Haruskah karakter ini di-escape?

@mdumouchel Gunakan tanda kutip tunggal. Jika tidak, ya itu benar.

@isiah

Masih mendapatkan kesalahan

node_modules/mocha/lib/utils.js:630
        throw new Error("cannot resolve path (or pattern) '" + path + "'");
              ^
Error: cannot resolve path (or pattern) './{,!(node_modules)/**/}*.test.js'

Saya akhirnya hanya menggunakan perintah find

mocha $(find . -type d -name node_modules -prune -o -name '*.test.js')

@mdumouchel Jika Anda menggunakan versi 2.x (yaitu apa yang ada di npm), bagaimanapun juga itu tidak akan bekerja. Dukungan akan dimulai pada 3.x, IIRC.

Aneh, saya pikir saya mencoba di Bash dan bisa menggunakan tanda kutip ganda. Adakah yang tahu sintaks / pelolosan yang akan bekerja baik di Windows dan di Bash?

Selain itu, saya cukup yakin kesalahan "tidak dapat menyelesaikan jalur" berarti jalur tersebut tidak cocok dengan file apa pun dalam proyek Anda; jalur yang saya berikan berfungsi pada versi saat ini ketika saya memiliki file uji dengan nama yang diakhiri dengan ".test.js" di samping file sumber yang sesuai, kecuali jika saya gagal menyalinnya dari pengujian saya ke komentar masalah ...

Lihat # 2173

Eslint melakukan pekerjaan yang baik dengan mengabaikan file dengan --ignore-path (dan .eslintignore ).
Lihat: http://eslint.org/docs/user-guide/command-line-interface#ignoring -files

Sesuatu yang mirip untuk moka akan luar biasa: two_hearts:


Solusi saya:

eslint "test/!(fixtures)/**/*.js" "test/*.js"

Struktur file saya

.
└── src
└── test
    └── fixtures
        └── data.js
    ├── foo.js
    └── bar.js

Masalah: Mocha memberi saya Error: cannot resolve path (or pattern) jika salah satu dari 2 jalur tidak cocok dengan sesuatu ..: kecewa_relieved:

Oke, jadi saya mengalah. Ini tidak ramah pengguna.

Inilah yang menurut saya harus kita lakukan:

  1. Mendukung --exclude <glob-or-path>
  2. Dukung _multiple_ instance --exclude
  3. Gabungkan semua opsi --exclude dengan semua argumen non-opsi ke dalam satu daftar (pada dasarnya apa yang dilakukan oleh globby )
  4. Muat file-file itu

Saat ini kami mendukung _n_ argumen non-opsi, yang semuanya bisa berupa glob, tetapi ini hanya _additive_; ini tidak berfungsi seperti yang Anda harapkan:

$ mocha 'src/**/*.spec.js' '!src/forbidden/**/*.spec.js'

Jadi hal di atas seharusnya berhasil, dan --exclude sebenarnya hanya gula untuk ! .

Selain itu, dukungan .mochaignore (# 2036) terdengar bagus, tetapi merupakan masalah terpisah. Seharusnya ada modul 3p yang dapat kita gunakan untuk memiliki perilaku seperti .gitignore ; Saya yakin apa pun yang dilakukan ESLint sudah cukup baik untuk tujuan kita.

... dan jika tidak jelas, jangan gunakan glob tanpa tanda kutip pada baris perintah; lihat # 2355

Anehnya, masih tidak ada opsi seperti --ignore-path , selain menempatkan semua tes ke dalam folder tests , tidak ada alasan mengapa kami tidak dapat menguji modul-modul.

+1
mengabaikan file atau direktori berdasarkan pola adalah fitur yang sangat berguna

@isiah

Anda selalu bisa melakukan src / / .js dan src / /.spec.js

Tidak, Anda tidak bisa - pola pencocokan **/* rusak dan tidak berfungsi secara rekursif.

EDIT: @ScottFreeCode punya jawabannya di bawah ini

pencocokan pola **/* rusak dan tidak bekerja secara rekursif.

Apakah jalur Anda dikutip ?

+1

image

Seperti yang dijelaskan di https://github.com/zinserjan/mocha-webpack/issues/124 :

Di dalam src/ ada file bernama server.ts yang mengaktifkan server ekspres, dan berjalan di latar belakang. Server biasanya aktif saat menjalankan cakupan, jadi porta sudah digunakan.

Jadi kami tidak ingin ini dan hanya file ini yang dikecualikan.

Menyuarakan pendapat saya bahwa mocha perlu diabaikan karena meskipun selama ini, pengelola masih perlu diyakinkan.

Mocha adalah kanon. mengapa tidak meningkatkan standar untuk rangkaian fitur lintas platform dari framework pengujian yang diinginkan oleh semua framework pengujian lainnya? Kita harus berhenti bercita-cita menyerahkan semuanya pada Bash. Ini sudah 2017.

Saya juga akan menunjukkan bahwa orang Windows tidak memiliki apa pun yang setara dengan !(glob) Bash (yang sebenarnya adalah Bash-isme, bahkan bukan standar POSIX).

Seharusnya tidak ada ketergantungan Bash apa pun dalam globbing Mocha apa adanya, karena diproses melalui modul Glob JS. (Catatan: mengutip jalur mungkin diperlukan untuk menghindari glob pemrosesan shell yang berbeda dari cara Mocha, misalnya ** tanpa ekstensi globstar atau apa pun yang membuatnya istimewa.)

@ScottFreeCode Apakah Anda menggunakan extglob: true saat menggunakan glob? Jika demikian, maka ini dapat ditutup dengan sintaks tersebut sebagai solusinya (karena glob / minimatch mendukungnya dengan opsi tersebut diaktifkan).

Sepertinya kita baru saja melewati jalur menuju glob . Saya cukup yakin bahwa saya mendapat negasi yang bekerja melalui pola glob di beberapa titik, tetapi itu mungkin versi modul yang lebih lama? Bagaimanapun, kami memiliki pengujian untuk perilaku bintang ganda , jadi jika ada yang ingin mengirimkan pengujian untuk mengonfirmasi bahwa beberapa pola negasi juga berfungsi (atau jika ada yang menemukan kekurangan dalam pengujian globbing yang sudah kami miliki), itu bagus. .

Namun, ada keuntungan pasti untuk memiliki opsi ignore / exclude eksplisit. Banyak keuntungan, sebenarnya:

  • kurang jelas
  • lebih mudah untuk menghindari bentrokan dengan karakter khusus OS yang berbeda dan aturan kutipan
  • daftar penyertaan dikurangi daftar pengecualian lebih sederhana dalam banyak kasus daripada daftar penyertaan dengan bagian yang dinegasikan

Saya hanya ingin mengklarifikasi bahwa status quo tidak dimaksudkan untuk mengandalkan cangkang tertentu. ; ^)

daftar penyertaan dikurangi daftar pengecualian lebih sederhana dalam banyak kasus daripada daftar penyertaan dengan bagian yang dinegasikan

Benar, dan saya hampir lupa tentang itu 😄

Siapapun yang datang ke masalah ini:

Solusinya sekarang adalah menggunakan glob, karena ini harus didukung. Jika seseorang menginginkan perilaku khusus ini, silakan kirim PR.

Apakah --exclude option berfungsi?
Tidak dapat menemukannya di dokumen .

@ sepo-one Saya membuka PR untuk memperbarui dokumen.
Anda dapat melihat semua opsi yang tersedia vis mocha -h .

Ya, saya telah menggunakan mocha versi lama. Telah ditingkatkan dan opsi --exclude ada.
Docs harus diperbarui, saya kira.

Terima kasih @outsideris

Apakah halaman ini membantu?
0 / 5 - 0 peringkat