Adding @NonParameterized
Marius Kruger <[email protected]> Sat, 11 Jun 2011 01:56:58 +0200
| Newsgroups | gmane.comp.java.junit.devel |
|---|---|
| Message-ID | <[email protected]> |
--bcaec521634f682ee004a56454d6 Content-Type: text/plain; charset=UTF-8 Hi, I've just discovered and fell in love with Parameterized tests (with: @RunWith(value = Parameterized.class) ) However in the first two use cases I have I have tests that does not use the parameterization mixed in with test that do use it (in the same class). I don't seem to be the only one missing this feature: http://stackoverflow.com/q/3361239/381083 It appears that TestNG does not suffer from this problem. http://techinsides.blogspot.com/2010/09/dont-tie-yourself-up-parameterized.html I'm not so desperate to switch to TestNG, so I modified the builtin Parameterized class to support this feature (see attached). Just annotate applicable tests as @NonParameterized. Note that this class only works with its on annotations, i.e. check your imports. If this has any chance of getting merged into junit I can turn it into a branch add tests and documentation etc. let me know. -- regards <>< Marius ><> --bcaec521634f682ee004a56454d6 Content-Type: text/x-java; charset=US-ASCII; name="Parameterized.java" Content-Disposition: attachment; filename="Parameterized.java" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gorsndn20 aW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLkVsZW1lbnRUeXBlOwppbXBvcnQgamF2YS5sYW5n LmFubm90YXRpb24uUmV0ZW50aW9uOwppbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50 aW9uUG9saWN5OwppbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uVGFyZ2V0OwppbXBvcnQgamF2 YS5sYW5nLnJlZmxlY3QuTW9kaWZpZXI7CmltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwppbXBv cnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOwppbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOwppbXBv cnQgamF2YS51dGlsLkxpc3Q7CgppbXBvcnQgb3JnLmp1bml0LlRlc3Q7CmltcG9ydCBvcmcuanVu aXQucnVubmVyLlJ1bm5lcjsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXIubm90aWZpY2F0aW9uLlJ1 bk5vdGlmaWVyOwppbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMuQmxvY2tKVW5pdDRDbGFzc1J1bm5l cjsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlN1aXRlOwppbXBvcnQgb3JnLmp1bml0LnJ1bm5l cnMubW9kZWwuRnJhbWV3b3JrTWV0aG9kOwppbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMubW9kZWwu SW5pdGlhbGl6YXRpb25FcnJvcjsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLm1vZGVsLlN0YXRl bWVudDsKaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLm1vZGVsLlRlc3RDbGFzczsKCi8qKgogKiA8 cD4KICogVGhlIGN1c3RvbSBydW5uZXIgPGNvZGU+UGFyYW1ldGVyaXplZDwvY29kZT4gaW1wbGVt ZW50cyBwYXJhbWV0ZXJpemVkIHRlc3RzLgogKiBXaGVuIHJ1bm5pbmcgYSBwYXJhbWV0ZXJpemVk IHRlc3QgY2xhc3MsIGluc3RhbmNlcyBhcmUgY3JlYXRlZCBmb3IgdGhlCiAqIGNyb3NzLXByb2R1 Y3Qgb2YgdGhlIHRlc3QgbWV0aG9kcyBhbmQgdGhlIHRlc3QgZGF0YSBlbGVtZW50cy4KICogPC9w PgogKiBGb3IgZXhhbXBsZSwgdG8gdGVzdCBhIEZpYm9uYWNjaSBmdW5jdGlvbiwgd3JpdGU6CiAq CiAqIDxwcmU+CiAqICYjMDY0O1J1bldpdGgoUGFyYW1ldGVyaXplZC5jbGFzcykKICogcHVibGlj IGNsYXNzIEZpYm9uYWNjaVRlc3QgewogKiAgICAgJiMwNjQ7UGFyYW1ldGVycwogKiAgICAgcHVi bGljIHN0YXRpYyBMaXN0Jmx0O09iamVjdFtdJmd0OyBkYXRhKCkgewogKiAgICAgICAgIHJldHVy biBBcnJheXMuYXNMaXN0KG5ldyBPYmplY3RbXVtdIHsKICogICAgICAgICAgICAgICAgIEZpYm9u YWNjaSwKICogICAgICAgICAgICAgICAgIHsgezAsIDB9LCB7MSwgMX0sIHsyLCAxfSwgezMsIDJ9 LCB7NCwgM30sIHs1LCA1fSwKICogICAgICAgICAgICAgICAgICAgICAgICAgezYsIDh9fX0pOwog KiAgICAgfQogKgogKiAgICAgcHJpdmF0ZSBpbnQgZklucHV0OwogKgogKiAgICAgcHJpdmF0ZSBp bnQgZkV4cGVjdGVkOwogKgogKiAgICAgcHVibGljIEZpYm9uYWNjaVRlc3QoaW50IGlucHV0LCBp bnQgZXhwZWN0ZWQpIHsKICogICAgICAgICBmSW5wdXQgPSBpbnB1dDsKICogICAgICAgICBmRXhw ZWN0ZWQgPSBleHBlY3RlZDsKICogICAgIH0KICoKICogICAgICYjMDY0O1Rlc3QKICogICAgIHB1 YmxpYyB2b2lkIHRlc3QoKSB7CiAqICAgICAgICAgYXNzZXJ0RXF1YWxzKGZFeHBlY3RlZCwgRmli b25hY2NpLmNvbXB1dGUoZklucHV0KSk7CiAqICAgICB9CiAqIH0KICogPC9wcmU+CiAqIDxwPgog KiBFYWNoIGluc3RhbmNlIG9mIDxjb2RlPkZpYm9uYWNjaVRlc3Q8L2NvZGU+IHdpbGwgYmUgY29u c3RydWN0ZWQgdXNpbmcgdGhlCiAqIHR3by1hcmd1bWVudCBjb25zdHJ1Y3RvciBhbmQgdGhlIGRh dGEgdmFsdWVzIGluIHRoZQogKiA8Y29kZT4mIzA2NDtQYXJhbWV0ZXJzPC9jb2RlPiBtZXRob2Qu CiAqIDwvcD4KICovCnB1YmxpYyBjbGFzcyBQYXJhbWV0ZXJpemVkIGV4dGVuZHMgU3VpdGUgewoK ICAgIC8qKgogICAgICogQW5ub3RhdGlvbiBmb3IgYSBtZXRob2Qgd2hpY2ggcHJvdmlkZXMgcGFy YW1ldGVycyB0byBiZSBpbmplY3RlZCBpbnRvIHRoZQogICAgICogdGVzdCBjbGFzcyBjb25zdHJ1 Y3RvciBieSA8Y29kZT5QYXJhbWV0ZXJpemVkPC9jb2RlPgogICAgICovCiAgICBAUmV0ZW50aW9u KFJldGVudGlvblBvbGljeS5SVU5USU1FKQogICAgQFRhcmdldChFbGVtZW50VHlwZS5NRVRIT0Qp CiAgICBwdWJsaWMgc3RhdGljIEBpbnRlcmZhY2UgUGFyYW1ldGVycyB7CiAgICB9CgogICAgLyoq CiAgICAgKiBBbm5vdGF0aW9uIGZvciBhIG1ldGhvZHMgd2hpY2ggc2hvdWxkIG5vdCBiZSBwYXJh bWV0ZXJpemVkCiAgICAgKi8KICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlJVTlRJTUUp CiAgICBAVGFyZ2V0KEVsZW1lbnRUeXBlLk1FVEhPRCkKICAgIHB1YmxpYyBzdGF0aWMgQGludGVy ZmFjZSBOb25QYXJhbWV0ZXJpemVkIHsKICAgIH0KCiAgICBwcml2YXRlIGNsYXNzIFRlc3RDbGFz c1J1bm5lckZvclBhcmFtZXRlcnMgZXh0ZW5kcwogICAgICAgICAgICBCbG9ja0pVbml0NENsYXNz UnVubmVyIHsKICAgICAgICBwcml2YXRlIGZpbmFsIGludCBmUGFyYW1ldGVyU2V0TnVtYmVyOwoK ICAgICAgICBwcml2YXRlIGZpbmFsIExpc3Q8T2JqZWN0W10+IGZQYXJhbWV0ZXJMaXN0OwoKICAg ICAgICBUZXN0Q2xhc3NSdW5uZXJGb3JQYXJhbWV0ZXJzKENsYXNzPD8+IHR5cGUsCiAgICAgICAg ICAgICAgICBMaXN0PE9iamVjdFtdPiBwYXJhbWV0ZXJMaXN0LCBpbnQgaSkgdGhyb3dzIEluaXRp YWxpemF0aW9uRXJyb3IgewogICAgICAgICAgICBzdXBlcih0eXBlKTsKICAgICAgICAgICAgZlBh cmFtZXRlckxpc3QgPSBwYXJhbWV0ZXJMaXN0OwogICAgICAgICAgICBmUGFyYW1ldGVyU2V0TnVt YmVyID0gaTsKICAgICAgICB9CgogICAgICAgIEBPdmVycmlkZQogICAgICAgIHB1YmxpYyBPYmpl Y3QgY3JlYXRlVGVzdCgpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICAgICByZXR1cm4gZ2V0 VGVzdENsYXNzKCkuZ2V0T25seUNvbnN0cnVjdG9yKCkubmV3SW5zdGFuY2UoCiAgICAgICAgICAg ICAgICAgICAgY29tcHV0ZVBhcmFtcygpKTsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgT2Jq ZWN0W10gY29tcHV0ZVBhcmFtcygpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICAgICB0cnkg ewogICAgICAgICAgICAgICAgcmV0dXJuIGZQYXJhbWV0ZXJMaXN0LmdldChmUGFyYW1ldGVyU2V0 TnVtYmVyKTsKICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKICAg ICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oU3RyaW5nLmZvcm1hdCgKICAgICAgICAg ICAgICAgICAgICAgICAgIiVzLiVzKCkgbXVzdCByZXR1cm4gYSBDb2xsZWN0aW9uIG9mIGFycmF5 cy4iLAogICAgICAgICAgICAgICAgICAgICAgICBnZXRUZXN0Q2xhc3MoKS5nZXROYW1lKCksIGdl dFBhcmFtZXRlcnNNZXRob2QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VGVz dENsYXNzKCkpLmdldE5hbWUoKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBA T3ZlcnJpZGUKICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldE5hbWUoKSB7CiAgICAgICAgICAg IHJldHVybiBTdHJpbmcuZm9ybWF0KCJbJXNdIiwgZlBhcmFtZXRlclNldE51bWJlcik7CiAgICAg ICAgfQoKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIHRlc3ROYW1l KGZpbmFsIEZyYW1ld29ya01ldGhvZCBtZXRob2QpIHsKICAgICAgICAgICAgcmV0dXJuIFN0cmlu Zy5mb3JtYXQoIiVzWyVzXSIsIG1ldGhvZC5nZXROYW1lKCksCiAgICAgICAgICAgICAgICAgICAg ZlBhcmFtZXRlclNldE51bWJlcik7CiAgICAgICAgfQoKICAgICAgICBAT3ZlcnJpZGUKICAgICAg ICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUNvbnN0cnVjdG9yKExpc3Q8VGhyb3dhYmxlPiBlcnJv cnMpIHsKICAgICAgICAgICAgdmFsaWRhdGVPbmx5T25lQ29uc3RydWN0b3IoZXJyb3JzKTsKICAg ICAgICB9CgogICAgICAgIEBPdmVycmlkZQogICAgICAgIHByb3RlY3RlZCBTdGF0ZW1lbnQgY2xh c3NCbG9jayhSdW5Ob3RpZmllciBub3RpZmllcikgewogICAgICAgICAgICByZXR1cm4gY2hpbGRy ZW5JbnZva2VyKG5vdGlmaWVyKTsKICAgICAgICB9CgogICAgICAgIEBPdmVycmlkZQogICAgICAg IHByb3RlY3RlZCBMaXN0PEZyYW1ld29ya01ldGhvZD4gY29tcHV0ZVRlc3RNZXRob2RzKCkgewog ICAgICAgICAgICBMaXN0PEZyYW1ld29ya01ldGhvZD4gcmV0ID0gc3VwZXIuY29tcHV0ZVRlc3RN ZXRob2RzKCk7CiAgICAgICAgICAgIGZvciAoSXRlcmF0b3I8RnJhbWV3b3JrTWV0aG9kPiBpID0g cmV0Lml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOykgewogICAgICAgICAgICAgICAgRnJhbWV3b3Jr TWV0aG9kIGZyYW1ld29ya01ldGhvZCA9CiAgICAgICAgICAgICAgICAgICAgKEZyYW1ld29ya01l dGhvZCkgaS5uZXh0KCk7CiAgICAgICAgICAgICAgICBpZiAoaXNQYXJhbWV0ZXJpemVkKCkgXgog ICAgICAgICAgICAgICAgICAgICFmcmFtZXdvcmtNZXRob2QuZ2V0TWV0aG9kKCkuaXNBbm5vdGF0 aW9uUHJlc2VudCgKICAgICAgICAgICAgICAgICAgICAgICAgTm9uUGFyYW1ldGVyaXplZC5jbGFz cykpIHsKICAgICAgICAgICAgICAgICAgICBpLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQoKICAgICAgICBw cm90ZWN0ZWQgYm9vbGVhbiBpc1BhcmFtZXRlcml6ZWQoKSB7CiAgICAgICAgICAgIHJldHVybiB0 cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGNsYXNzIFRlc3RDbGFzc1J1bm5lckZv ck5vblBhcmFtZXRlcml6ZWQgZXh0ZW5kcwogICAgICAgIFRlc3RDbGFzc1J1bm5lckZvclBhcmFt ZXRlcnMgewoKICAgICAgICBUZXN0Q2xhc3NSdW5uZXJGb3JOb25QYXJhbWV0ZXJpemVkKENsYXNz PD8+IHR5cGUsCiAgICAgICAgICAgIExpc3Q8T2JqZWN0W10+IHBhcmFtZXRlckxpc3QsIGludCBp KQogICAgICAgICAgICB0aHJvd3MgSW5pdGlhbGl6YXRpb25FcnJvciB7CiAgICAgICAgICAgIHN1 cGVyKHR5cGUsIHBhcmFtZXRlckxpc3QsIGkpOwogICAgICAgIH0KCiAgICAgICAgcHJvdGVjdGVk IGJvb2xlYW4gaXNQYXJhbWV0ZXJpemVkKCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg ICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZmluYWwgQXJyYXlMaXN0PFJ1bm5lcj4gcnVubmVy cyA9IG5ldyBBcnJheUxpc3Q8UnVubmVyPigpOwoKICAgIC8qKgogICAgICogT25seSBjYWxsZWQg cmVmbGVjdGl2ZWx5LiBEbyBub3QgdXNlIHByb2dyYW1tYXRpY2FsbHkuCiAgICAgKi8KICAgIHB1 YmxpYyBQYXJhbWV0ZXJpemVkKENsYXNzPD8+IGtsYXNzKSB0aHJvd3MgVGhyb3dhYmxlIHsKICAg ICAgICBzdXBlcihrbGFzcywgQ29sbGVjdGlvbnMuPFJ1bm5lcj4gZW1wdHlMaXN0KCkpOwogICAg ICAgIExpc3Q8T2JqZWN0W10+IHBhcmFtZXRlcnNMaXN0ID0gZ2V0UGFyYW1ldGVyc0xpc3QoZ2V0 VGVzdENsYXNzKCkpOwogICAgICAgIGlmIChwYXJhbWV0ZXJzTGlzdC5zaXplKCkgPiAwKSB7CiAg ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBydW5uZXJzLmFkZChuZXcgVGVzdENsYXNz UnVubmVyRm9yTm9uUGFyYW1ldGVyaXplZCgKICAgICAgICAgICAgICAgICAgICBnZXRUZXN0Q2xh c3MoKQogICAgICAgICAgICAgICAgICAgICAgICAuZ2V0SmF2YUNsYXNzKCksIHBhcmFtZXRlcnNM aXN0LCAwKSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAg ICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk5vIHZhbGlkIG5vbi1wYXJhbWV0ZXJpemVkIHRlc3Rz OiAiCiAgICAgICAgICAgICAgICAgICAgKyBlLmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIH0K ICAgICAgICB9CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBw YXJhbWV0ZXJzTGlzdC5zaXplKCk7IGkrKykgewogICAgICAgICAgICAgICAgcnVubmVycy5hZGQo bmV3IFRlc3RDbGFzc1J1bm5lckZvclBhcmFtZXRlcnMoZ2V0VGVzdENsYXNzKCkKICAgICAgICAg ICAgICAgICAgICAuZ2V0SmF2YUNsYXNzKCksCiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVy c0xpc3QsIGkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7 CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTm8gdmFsaWQgcGFyYW1ldGVyaXplZCB0 ZXN0czogIgogICAgICAgICAgICAgICAgKyBlLmdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAg fQoKICAgIEBPdmVycmlkZQogICAgcHJvdGVjdGVkIExpc3Q8UnVubmVyPiBnZXRDaGlsZHJlbigp IHsKICAgICAgICByZXR1cm4gcnVubmVyczsKICAgIH0KCiAgICBAU3VwcHJlc3NXYXJuaW5ncygi dW5jaGVja2VkIikKICAgIHByaXZhdGUgTGlzdDxPYmplY3RbXT4gZ2V0UGFyYW1ldGVyc0xpc3Qo VGVzdENsYXNzIGtsYXNzKQogICAgICAgICAgICB0aHJvd3MgVGhyb3dhYmxlIHsKICAgICAgICBy ZXR1cm4gKExpc3Q8T2JqZWN0W10+KSBnZXRQYXJhbWV0ZXJzTWV0aG9kKGtsYXNzKS5pbnZva2VF eHBsb3NpdmVseSgKICAgICAgICAgICAgICAgIG51bGwpOwogICAgfQoKICAgIHByaXZhdGUgRnJh bWV3b3JrTWV0aG9kIGdldFBhcmFtZXRlcnNNZXRob2QoVGVzdENsYXNzIHRlc3RDbGFzcykKICAg ICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgTGlzdDxGcmFtZXdvcmtNZXRob2Q+ IG1ldGhvZHMgPSB0ZXN0Q2xhc3MKICAgICAgICAgICAgICAgIC5nZXRBbm5vdGF0ZWRNZXRob2Rz KFBhcmFtZXRlcnMuY2xhc3MpOwogICAgICAgIGZvciAoRnJhbWV3b3JrTWV0aG9kIGVhY2ggOiBt ZXRob2RzKSB7CiAgICAgICAgICAgIGludCBtb2RpZmllcnMgPSBlYWNoLmdldE1ldGhvZCgpLmdl dE1vZGlmaWVycygpOwogICAgICAgICAgICBpZiAoTW9kaWZpZXIuaXNTdGF0aWMobW9kaWZpZXJz KSAmJiBNb2RpZmllci5pc1B1YmxpYyhtb2RpZmllcnMpKQogICAgICAgICAgICAgICAgcmV0dXJu IGVhY2g7CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJObyBwdWJsaWMg c3RhdGljIHBhcmFtZXRlcnMgbWV0aG9kIG9uIGNsYXNzICIKICAgICAgICAgICAgICAgICsgdGVz dENsYXNzLmdldE5hbWUoKSk7CiAgICB9Cgp9Cgo= --bcaec521634f682ee004a56454d6 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev --bcaec521634f682ee004a56454d6 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Junit-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/junit-devel --bcaec521634f682ee004a56454d6--