@@ -3001,18 +3001,37 @@ Functions are called with SELECTORS as argument.
30013001
30023002Since Eldev 0.2.")
30033003
3004+ (defvar eldev-test-ert-fileset nil
3005+ "Test files that contain project's ERT tests.
3006+ Only important if the project contains tests of different types.
3007+
3008+ Since Eldev 0.10.")
3009+
30043010(defvar eldev-test-buttercup-hook nil
30053011 "Hook executed before running Buttercup tests.
30063012Functions are called with SELECTORS as argument.
30073013
30083014Since Eldev 0.2.")
30093015
3016+ (defvar eldev-test-buttercup-fileset nil
3017+ "Test files that contain project's Buttercup tests.
3018+ Only important if the project contains tests of different types.
3019+
3020+ Since Eldev 0.10.")
3021+
30103022(defvar eldev-test-ecukes-hook nil
30113023 "Hook executed before running Ecukes tests.
30123024Functions are called with SELECTORS as argument.
30133025
30143026Since Eldev 0.10.")
30153027
3028+ (defvar eldev-test-ecukes-fileset nil
3029+ "Test files that contain project's Ecukes tests.
3030+ For Ecukes it's currently never important, since only this
3031+ framework uses `.feature' files.
3032+
3033+ Since Eldev 0.10.")
3034+
30163035(defvar eldev--test-runners nil)
30173036
30183037(defvar eldev-test-file-patterns nil
@@ -3172,9 +3191,19 @@ for details."
31723191 (used-by-frameworks (nth 0 (cdr entry)))
31733192 (file-description (nth 1 (cdr entry)))
31743193 (files (nth 2 (cdr entry)))
3175- (files-looked-up (listp files)))
3194+ (files-looked-up (listp files))
3195+ framework-filesets
3196+ disregard-framework-filesets)
31763197 (unless files-looked-up
3177- (setf files (eldev-find-and-trace-files `(:and ,(eldev-standard-fileset 'test) ,fileset) file-description))
3198+ (dolist (framework used-by-frameworks)
3199+ (let* ((variable (intern (format "eldev-test-%s-fileset" framework)))
3200+ (fileset (when (boundp variable) (symbol-value variable))))
3201+ (if fileset
3202+ (push fileset framework-filesets)
3203+ (setf disregard-framework-filesets t))))
3204+ (setf files (eldev-find-and-trace-files `(:and ,(eldev-standard-fileset 'test) ,fileset ,@(when (and framework-filesets (not disregard-framework-filesets))
3205+ `((:or ,(nreverse framework-filesets)))))
3206+ file-description))
31783207 (when filter-patterns
31793208 (setf files (eldev-filter-files files (reverse filter-patterns)))
31803209 (eldev-trace "%s" (eldev-message-enumerate-files (format "Remaining %s after applying `--file' filter(s): %%s (%%d)" file-description) files)))
@@ -3253,6 +3282,10 @@ for details."
32533282(defun eldev--test-autoinstalling-framework (enabled callback)
32543283 ;; If framework is specified explicitly, ensure it is installed first. Otherwise
32553284 ;; appropriate framework will be installed from `require' advice below.
3285+ ;;
3286+ ;; FIXME: Why do we need this? Drawback example: when multiple frameworks are used
3287+ ;; (since 0.10) and you explicitly test with only one, the second one also gets
3288+ ;; installed because of the below code.
32563289 (when (and enabled eldev-test-framework)
32573290 (dolist (framework (eldev-listify eldev-test-framework))
32583291 (unless (eldev-test-get-framework-entry framework 'fileset)
0 commit comments